Developer Toolbox

버블 정렬

리스트를 처음부터 여러 번 훑으며, 순서가 틀린 이웃 값을 교환합니다. 한 바퀴를 돌 때마다 남은 값 중 최댓값이 끝으로 갑니다.

  • Ω(n)
  • Θ(n²)
  • O(n²)
  • O(1)
  • 예
  • 예
  • 비교 중
  • 이동 중
  • 제자리
0 / 453 단계

순서가 틀린 쌍: 154 (처음: 154) 순서가 틀림 바로잡힘

비교 횟수 교환 횟수

재생을 누르면 정렬이 진행되며 비용이 늘어나는 모습이 선으로 보입니다

재생을 누르거나 한 단계씩 진행하세요.

스페이스바: 재생 또는 일시정지. 좌우 화살표 키: 단계 이동. Home과 End 키: 처음과 끝으로 이동.

해 보세요: 거의 정렬된 리스트를 골라 보세요. 교환이 없는 바퀴가 한 번 나오면 알고리즘이 일찍 멈춥니다.

작동 방식

이웃한 두 값을 비교해서 왼쪽 값이 더 크면 교환합니다. 그래서 한 바퀴마다 최댓값이 거품이 떠오르듯 오른쪽 끝까지 갑니다. 한 바퀴 동안 교환이 한 번도 없으면 리스트는 이미 정렬된 것입니다.

언제 쓰면 좋을까

긴 리스트에서는 느려서 실제 프로그램에서는 거의 쓰지 않습니다. 하지만 배우기에는 아주 좋습니다. 비교하고 교환하는 정렬의 기본 아이디어가 잘 보이기 때문입니다. 빠른 경우는 리스트가 이미 정렬되어 있을 때뿐입니다.