テン古典的なソートアルゴリズム(10)基数ソート

基数ソート

基数ソート比較型が非整数ソートアルゴリズムであり、原理は、ビットの整数は、各のビット数を比較した、異なる数により切断されます。整数は、特定のフォーマット(例えば、名前、日付など)浮動小数点文字列を表現することができるので、基数ソートは、整数のみのために使用されません。

ソートバケットソート、ソート、カウント対対基数

基数ソート二つの方法で:
3つのソートアルゴリズムは、バレルの概念を利用するが、バレルの使用における明らかな違いがあります。

  • 基数ソート:各デジタルキーに基づいてバケットを割り当てます。
  • カウントシーケンシング:単一キーのみを格納し、各バケット。
  • バケットソート:範囲の各バケット値を記憶します。
マップのプレゼンテーションを移動します

ここに画像を挿入説明

コードの実装
  • JavaScriptの実装:
//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元の記事 ウォンの賞賛1 ビュー163

おすすめ

転載: blog.csdn.net/october_autumn/article/details/104720212