- 동영상 내용을 보면 알 수 있듯이 언제나 두 데이터가 나와서 경합을 펼치며 큰 수가 뒤로 이동한다. 한 싸이클이 끝나면 맨 뒤에는 가장 큰 수가 위치하게 된다. (동영상에서는 확정된 값들을 뒤돌아버린다.)
- 다음 반복은 역시 앞에서 부터 쭉~ 진행되는데 이미 정렬된 데이터 앞까지 만 진행하면 된다.
- 가장 간단한 정렬 방식으로 구현또한 단순하다. 아래 정렬 과정을 살펴보자.
2. 정렬 과정
위와 같은 과정을 거쳐 버블 정렬이 진행된다. 이를 실제 코드로 살펴보자.
3. 자바 코드
@Test
public void bubbleSortTest() {
data = new int[] { 3, 0, 1, 8, 7, 2, 5, 4, 6, 9 };
for (int i = 0; i < data.length; i++) {
// 한바퀴 돌 때마다 맨 뒤 숫자가 결정된다.
for (int j = 0; j < data.length - 1 - i; j++) {
// 앞 요소가 더 크면 뒤 요소와 swap한다.
if (data[j] > data[j + 1]) {
int temp = data[j];
data[j] = data[j + 1];
data[j + 1] = temp;
}
}
System.out.printf("%d단계: %s%n", i, Arrays.toString(data));
}
System.out.printf("bubble sort: %s%n", Arrays.toString(data));
}