Learning
토픽 12 / 82

기수 정렬 (Radix Sort)

기수 정렬 (Radix Sort)

자릿수별로 안정 정렬을 반복하여 정수를 정렬하는 비비교 기반 알고리즘

목적: 선형 시간 정렬, 큰 정수

특징: 비비교 기반, 안정 정렬, 자릿수 의존, 계수 정렬 활용

동작: ① LSD(Least Significant Digit) - 가장 낮은 자릿수부터 → ② 각 자릿수별로 안정 정렬(계수 정렬) → ③ 최상위 자릿수까지 반복

LSD vs MSD: LSD(오른쪽→왼쪽, 단순), MSD(왼쪽→오른쪽, 재귀, 조기 종료)

시간 복잡도: O(d × (n + k)) - d = 자릿수, k = 기수(보통 10)

공간 복잡도: O(n + k) - 계수 정렬 공간

장점: 선형 시간(자릿수 적으면), 안정 정렬, 큰 정수 효율

단점: 자릿수 많으면 느림, 추가 메모리, 정수만, 비교 정렬보다 느릴 수 있음

적용사례: 큰 정수 정렬, 문자열 정렬(고정 길이), 카드 덱 정렬

비교: 기수(O(d(n+k))/자릿수) vs 계수(O(n+k)/범위) vs 퀵(O(n log n)/비교)

연관: 계수 정렬, LSD, MSD, 비비교 정렬