Learning
토픽 85 / 92·비교표

정렬 알고리즘

정렬 알고리즘 종합 비교

알고리즘최선평균최악공간안정제자리특징
버블O(n)O(n²)O(n²)O(1)OO교환 기반, 교육용, 조기종료 최적화
선택O(n²)O(n²)O(n²)O(1)XO교환 O(n)으로 최소, 비적응적
삽입O(n)O(n²)O(n²)O(1)OO적응적, 소규모·거의 정렬 데이터에 유리
병합O(n log n)O(n log n)O(n log n)O(n)OX성능 보장, 외부 정렬, 안정
O(n log n)O(n log n)O(n²)O(log n)XO평균 최고 성능, 캐시 효율, 피벗 의존
O(n log n)O(n log n)O(n log n)O(1)XO성능 보장, 제자리, 캐시 비효율
계수O(n+k)O(n+k)O(n+k)O(n+k)OX비비교, 정수, 범위(k) 작을 때
기수O(d(n+k))O(d(n+k))O(d(n+k))O(n+k)OX비비교, 자릿수(d) 기반

TimSort vs 퀵 정렬 vs 병합 정렬

항목TimSort퀵 정렬병합 정렬
안정성안정불안정안정
적응형O (Run 활용)XX
최악O(n log n) 보장O(n^2)O(n log n) 보장
공간O(n)O(log n)O(n)
실데이터최적화 (부분정렬 활용)평균 빠름항상 일정
적용Python/Java 기본C qsort(), 범용외부 정렬

안정 정렬 vs 불안정 정렬

구분안정 정렬불안정 정렬
동일 키 순서유지보장 안 됨
대표병합, 삽입, Tim퀵, 힙, 선택
다중 키 정렬적합부적합
추가 비용메모리 또는 성능없음(제자리)

비교 정렬 vs 비비교 정렬

항목비교 정렬비비교 정렬
하한Omega(n log n)O(n) 가능
알고리즘병합, 퀵, 힙계수, 기수, 버킷
데이터 제약비교 가능하면 모두정수/제한된 범위
적용범용특수 조건 (정수, 범위 작음)

외부 정렬 vs 내부 정렬

항목외부 정렬내부 정렬
데이터 위치디스크 (메모리 초과)메모리 내
방식분할→정렬→병합메모리 내 정렬
I/O디스크 I/O 최소화불필요
적용대용량 DB, 로그일반 배열 정렬