서로 인접한 원소를 비교하여 교환하는 정렬 알고리즘
최악 시간복잡도 : 비교 - O(n^2) , 교환 - O(n^2)
최선 시간복잡도 : 비교 - O(n) , 교환 - O(1)
평균 시간복잡도 : 비교 - O(n^2) , 교환 - O(n^2)
배열의 두 수(a, b)를 선택한 뒤, 그 두 수를 비교하여 오름차순, 내림차순에 맞게 정렬한다.
오름차순이라면 a < b, 내림차순이라면 a > b 이어야 하며, 이를 배열의 처음부터 끝까지 반복한다.
void bubbleSort(int[] arr) {
int temp = 0;
for(int i = 0; i < arr.length - 1; i++) {
for(int j = 1 ; j < arr.length - i; j++) {
if(arr[j-1] > arr[j]) {
temp = arr[j-1];
arr[j-1] = arr[j];
arr[j] = temp;
}
}
}
System.out.println(Arrays.toString(arr));
}