less than 1 minute read

버블정렬 Bubble Sort

✏️개념

  • 서로 인접한 두 원소를 검사하여 정렬하는 알고리즘

  • 선택정렬과 유사

  • 첫번째와 두번째, 두번째와 세번째, 세번째와 네번째…이런 식으로 비교하며 한 회전당 맨 뒤 하나씩 fix해 나간다.

  • 예제

failtoBring

✏️C코드 구현

bubbleSort(a[n], n){
    int tmp;

    for(int i = n-1; i > 0; i--){
        for(int j = 0; j < i; j++){
            if(a[j+1] < a[j]){
                tmp = a[j-1];
                a[j-1] = a[j];
                a[j] = tmp;
            }
        }
    }
}

✏️시간복잡도

  • 이 버블정렬 알고리즘은 중첩된 두 개의 for 루프에서 n(n-1)/2번의 비교 연산을 해야하기 때문에 시간 복잡도는 O(n^2)이 된다.