radix sort
sorting in linear time
Last updated
sorting in linear time
Last updated
n개의 d자리 정수들이 주어진다.
예) 영문 문자열 : 5자리 문자열 데이터들 -> a부터 z까지 총 26개의 데이터가 올 수 있다.
가장 낮은 자리수부터 정렬한다.
그 이후에는 뒤에서 두번째 자리를 기준으로 정렬
위를 반복하면 정렬이 완성된다.
stable sort : 동일한 값에 대하여 입력된 순서대로 정렬되어 출력되는 것을 말한다.
radix sort 는 매 단계마다 stable sort 를 유지해야하며, 따라서 counting sort 를 이용하게 된다.
첫번째 스텝을 거치면, 가장 낮은 자리수만으로 정렬이 된다.
두번째 스텝을 거치면, 마지막 두 자리수에 대해서 정렬이 된다. 첫번째 스텝을 거쳤기 때문이다.
동점인 데이터에 대해서 (앞자리가 같은 수에 대하여) 입력된 순서대로 정렬이 된다. = stable
시간 복잡도 O(d(n+k))
k(데이터가 될 수 있는 값의 개수), n(데이터의 개수), d(자릿수)
만약 k = O(n), d 가 상수이면, 결국 시간복잡도는 O(n)이 될수도 있다.