위키득계정 ↗
기술

기수 정렬

기수 정렬기술
영문명
Radix sort
처리 단위
키의 자리 또는 부분
대표 방식
낮은 자리부터와 높은 자리부터
LSD 방식의 요구
자리별 정렬의 안정성
기수 정렬은 키를 자리나 부분 단위로 나누어 여러 번 배치하는 정렬 알고리즘이다. 낮은 자리부터 처리하는 방식에서는 매 단계 같은 자리값을 가진 원소의 상대 순서를 유지해야 한다.

낮은 자리부터의 예

32, 11, 23, 12를 일의 자리 기준으로 안정 정렬하면 11, 32, 12, 23이다. 이를 십의 자리 기준으로 다시 안정 정렬하면 11, 12, 23, 32가 되어 전체가 정렬된다.

이전 정보 보존

마지막에 처리하는 높은 자리값이 같다면 앞서 정렬한 낮은 자리 순서가 결과를 결정한다. 같은 자리값의 원소 순서를 임의로 뒤집으면 그 정보가 사라진다. 이 때문에 LSD 방식은 각 단계의 안정성이 중요하다.

자리 수와 범위

n개 원소에서 d개 자리를 처리하고 각 자리의 범위가 b이며 계수 정렬을 사용한다면 기본 비용은 O(d(n+b))로 볼 수 있다. 자리 수와 분류 범위를 무시하고 항상 선형 시간이라고 말할 수는 없다.

키의 표현

음수나 가변 길이 문자열을 다룰 때에는 부호, 자리 채움, 문자열 끝 등을 어떻게 해석할지 정해야 한다. 같은 기수 정렬이라도 키의 표현과 순서 규칙이 다르면 처리 방법이 달라진다.

관련 문서

계수 정렬 / 안정 정렬 / 정렬 알고리즘 / 시간 복잡도 / 배열 / 이진법 / 문자열