Bubble Sort
서로 인접한 두 원소를 검사하여 정렬하는 알고리즘
실행시간 : O(n2) = (n-1)+(n-2)+…+2+1
최악, 최선, 평균 모두 Q(n2)
배열의 첫 원소부터 순차적으로 진행하며, 현재 원소가 그 다음 원소의 값보다 크면 두 원소를 바꾸는 작업을 반복한다.
public class BubbleSortExample {
static void bubbleSort(int[] arr) {
int len = arr.length;
int temp = 0;
for (int i = 0; i < len; i++) {
for (int j = 1; j < (len-1); j++) {
if (arr[j-1] > arr[j]) {
// swap elements
temp = arr[j-1];
arr[j-1] = arr[j];
arr[j] = temp;
}
}
}
}
public static void main(String[] args) {
int[] arr= {3,2,30,45,230,1,503};
System.out.println("Array Before Bubble Sort");
for (int i : arr) {
System.out.print(i + " ");
}
bubbleSort(arr);
System.out.println("Array After Bubble Sort");
for (int j : arr) {
System.out.print(j + " ");
}
}
}
Output:
Array Before Bubble Sort
3 2 30 45 230 1 503
Array After Bubble Sort
1 2 3 30 45 230 503