이렇게하면 모든 아이템들을 처음부터 끝까지 순회하면서 인접한 값들을 비교할 수 있다.
버블 정렬의 시간 복잡도는 O(N²)이며 Worst, Average, Best 모두 동일.일일히 비교해야하기 때문에 연산 수가 많아 정렬 알고리즘 중에서 가장 느리고 효율성이 떨어지는 정렬 방식입니다.
public class BubbleSort {
public static void main(String[] args) {
int[] arr = new int[]{3, 1, 6, 88, 2, 5, 9, 312, 99}; // 길이가 9인 배열 arr
// 버블정렬 1 -> 정순
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int tmp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = tmp;
}
}
}
// 버블정렬 2 -> 역순
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - i - 1; j++) {
if (arr[j] < arr[j + 1]) {
int tmp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = tmp;
}
}
}
}
// 정순 출력 >> 1 2 3 5 6 9 88 99 312
// 역순 출력 >> 312 99 88 9 6 5 3 2 1