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