[알고리즘] Bubble Sort(거품 정렬)

김성록·2023년 2월 6일

알고리즘

목록 보기
1/18

Bubble Sort에 대해 설명해보세요


Bubble Sort 정렬 방식

  • Bubble Sort는 인접한 두 수의 크기를 비교해서 조건에 맞게 자리를 교환하며 정렬하는 알고리즘이다.

  • 매 차례마다 앞에서부터 비교를 진행하며 가장 큰 수는 맨 마지막에 위치하게 되고, 다음 비교 대상에서 제외된다.


Bubble Sort의 특징

  • 시간 복잡도
    : 크기가 N인 배열의 경우 (N-1) + (N-2) + ... + 1 = N(N-1)/2의 비교 횟수를 가진다. 따라서 시간 복잡도는 O(N^2)이다. 배열 안의 원소들의 정렬 상태에 상관 없이 항상 2개의 원소를 비교해나가기 때문에 최선, 평균, 최악의 경우 시간복잡도가 모두 O(N^2)로 동일하다.

  • 공간 복잡도
    : 배열 안에서 교환하여 정렬하기 때문에 다른 메모리 공간이 필요없이 공간 복잡도는 O(N)을 가진다.

  • 장점

    • 구현이 간단하여 단순성이 높다.
  • 단점

    • 단순성에 비해 상당히 느리고 효율성이 떨어진다.
    • 한 번의 교환 작업은 세 번의 이동 작업이 필요하기 때문에 보다 복잡하다.
    • 배열이 역순으로 정렬되어 있을 경우, 원소의 교환 작업이 상당히 많이 필요하다.

결론

Bubble Sort는 인접한 두 수의 크기를 비교하여 큰 수를 하나씩 뒤로 보내는 정렬 알고리즘입니다. O(N^2)의 시간 복잡도를 가지며, O(N)의 공간 복잡도를 가집니다. 다른 정렬 알고리즘에 비해 단순하지만 그만큼 효율성이 떨어지므로, 데이터의 수가 적고 간단한 정렬이 필요로 한 경우 사용하는 것이 유리합니다.

profile
예비 개발자

0개의 댓글