기수 정렬
기수 정렬 비교 타입 정렬 알고리즘이 아닌 정수이고, 원칙 비트 정수가 다른 숫자로 절단이다, 각 비트의 다음 번호를 비교 하였다. 정수가 특정 형식 (예 : 이름이나 날짜 등) 부동 소수점 문자열 표현 될 수 있기 때문에, 기수 정렬은 정수만을 위해 사용되지 않는다.
기수 정렬 버킷 대 종류의 수를 정렬 대
기수 정렬 두 가지 방법으로 :
세 개의 정렬 알고리즘은 배럴의 개념의 사용을 만들지 만 배럴의 사용에 명백한 차이가있다 :
- 기수 정렬 : 각 디지털 키를 기준으로 버킷을 할당 할;
- 계산 순서 : 단지 하나의 키를 저장하는 각 버킷;
- 버킷 정렬 : 범위의 각 버킷 값을 저장하는 단계;
이동지도 발표
코드 구현
//LSD Radix Sort
var counter = [];
function radixSort(arr, maxDigit) {
var mod = 10;
var dev = 1;
for (var i = 0; i < maxDigit; i++, dev *= 10, mod *= 10) {
for(var j = 0; j < arr.length; j++) {
var bucket = parseInt((arr[j] % mod) / dev);
if(counter[bucket]==null) {
counter[bucket] = [];
}
counter[bucket].push(arr[j]);
}
var pos = 0;
for(var j = 0; j < counter.length; j++) {
var value = null;
if(counter[j]!=null) {
while ((value = counter[j].shift()) != null) {
arr[pos++] = value;
}
}
}
}
return arr;
}