Menu
Coddy logo textTech

Stability

Coddy의 버블 정렬 코스 레슨 — 11개 중 7번째.

이 레슨에서는 버블 정렬 알고리즘의 안정성(stable nature)에 대해 확인해 보겠습니다.

안정성(stability)이란 무엇일까요?

정렬 알고리즘은 동일한 키를 가진 두 객체가 정렬 전의 입력 배열에서와 동일한 순서로 정렬 후의 출력 결과에도 나타날 때 안정적이라고 합니다.

예를 들어, [2,<strong>8<sub>1</sub></strong>,4,<strong>8<sub>2</sub></strong>,6,1] 배열을 정렬해야 한다고 가정해 봅시다. 여기에는 8182로 표시된 두 개의 8이 있습니다. 정렬 후에는 두 가지 가능한 배열을 얻을 수 있습니다. 바로 [1,2,4,6,<strong>8<sub>1</sub></strong>,<strong>8<sub>2</sub></strong>][1,2,4,6,<strong>8<sub>2</sub></strong>,<strong>8<sub>1</sub></strong>]입니다. 두 배열 모두 정렬된 상태이지만, 두 번째 배열에서는 두 8의 순서가 바뀐 반면, 첫 번째 배열에서는 입력 배열과 순서가 동일합니다.

이제 버블 정렬 알고리즘에 대해 이를 확인해 봅시다.

첫 번째 패스(First Pass): [2,<strong>8<sub>1</sub></strong>,4,<strong>8<sub>2</sub></strong>,6,1] -> [2,4,<strong>8<sub>1</sub></strong>,6,1,<strong>8<sub>2</sub></strong>]

두 번째 패스(Second Pass): [2,4,<strong>8<sub>1</sub></strong>,6,1,<strong>8<sub>2</sub></strong>] -> [2,4,6,1,<strong>8<sub>1</sub></strong>,<strong>8<sub>2</sub></strong>]

모든 패스가 끝난 후의 최종 출력은 다음과 같습니다: [1,2,4,6,<strong>8<sub>1</sub></strong>,<strong>8<sub>2</sub></strong>]

출력 배열과 입력 배열 모두에서 8의 순서가 동일하다는 점에 주목해 보세요.

따라서, 버블 정렬 알고리즘은 안정적(Stable)입니다!

직접 해보기

이 레슨에는 코드 챌린지가 없습니다.

버블 정렬의 모든 레슨