버블정렬 (Bubble Sort)
버블정렬은 인접한 2개의 레코드를 비교하여 크기가 순서대로 되어있지 않으면 서로 교환하는 비교-교환 과정을 리스트의 왼쪽 끝에서 시작하여 오른쪽 끝까지 진행합니다. 이렇게 되면 가장 큰 레코드가 리스트의 오른쪽 끝으로 이동하게 되는데 이 과정을 스캔이라고 합니다.
이 스캔 과정을 반복하며 숫자가 정렬될 때까지 반복 수행합니다.
레코드의 이동 과정이 마치 물 속에서 거품이 보글보글 떠오르는 것과 유사하다고 하여 버블정렬이라고 부릅니다.
1. 인접한 2개의 레코드 비교, 작은 숫자를 앞으로 교환
2. 가장 큰 수가 오른쪽 끝으로 가게 됨
3. 1의 과정을 다시 진행하여 모든 숫자가 정렬될 때 까지 반복
스캔 과정
버블정렬의 특징
버블정렬은 안정성이 있고, 비효율적인 정렬입니다. 알고리즘 자체가 정렬 방법들 중 가장 간단하고 구현이 쉽지만 정렬 속도가 느립니다. O(n^2)
버블정렬 구현