본문 바로가기
CS/자료구조

[자료구조] 버블정렬(Bubble Sort)

by 코모's 2024. 1. 15.
반응형

버블정렬이란

- 인접한 두 원소를 비교해 나가며 가장 큰원소를 끝으로 보내는 과정을 N - 1 번 반복하는 알고리즘이다.

- 정렬 과정에서 원소의 이동이 거품이 수면으로 올라오는 듯한 모습을 보이기 때문에 지어졌다고 한다.

- 구현하기엔 쉽지만 성능이 아쉬운 정렬이다.

- 시간 복잡도  : O(n^2)

 

# include <stdio.h>
# define MAX_SIZE 5

// 버블 정렬
void bubble_sort(int list[], int n){
  int i, j, temp;

  for(i=n-1; i>0; i--){
    // 0 ~ (i-1)까지 반복
    for(j=0; j<i; j++){
      // j번째와 j+1번째의 요소가 크기 순이 아니면 교환
      if(list[j]<list[j+1]){
        temp = list[j];
        list[j] = list[j+1];
        list[j+1] = temp;
      }
    }
  }
}

void main(){
  int i;
  int n = MAX_SIZE;
  int list[n] = {7, 4, 5, 1, 3};

  // 버블 정렬 수행
  bubble_sort(list, n);

  // 정렬 결과 출력
  for(i=0; i<n; i++){
    printf("%d\n", list[i]);
  }
}
반응형