텐 고전적인 정렬 알고리즘 (10) 기수 정렬

기수 정렬

기수 정렬 비교 타입 정렬 알고리즘이 아닌 정수이고, 원칙 비트 정수가 다른 숫자로 절단이다, 각 비트의 다음 번호를 비교 하였다. 정수가 특정 형식 (예 : 이름이나 날짜 등) 부동 소수점 문자열 표현 될 수 있기 때문에, 기수 정렬은 정수만을 위해 사용되지 않는다.

기수 정렬 버킷 대 종류의 수를 정렬 대

기수 정렬 두 가지 방법으로 :
세 개의 정렬 알고리즘은 배럴의 개념의 사용을 만들지 만 배럴의 사용에 명백한 차이가있다 :

  • 기수 정렬 : 각 디지털 키를 기준으로 버킷을 할당 할;
  • 계산 순서 : 단지 하나의 키를 저장하는 각 버킷;
  • 버킷 정렬 : 범위의 각 버킷 값을 저장하는 단계;
이동지도 발표

그림 삽입 설명 여기

코드 구현
  • 자바 스크립트 구현 :
//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;
}
게시 16 개 원래 기사 · 원 찬양 한 · 전망 (163)

추천

출처blog.csdn.net/october_autumn/article/details/104720212