排序演算法之基數排序 JavaScript實現

2021-08-01 04:26:35 字數 989 閱讀 9612

剛開始學,注釋為自己的理解,敬請指正。

// lsd radix sort

// 比較整型

var counter = ;

// 定義乙個函式 arr待排序陣列 maxdigit陣列中最大數的位數,例如[1,10,100]的maxdigit為3

function

radixsort

(arr, maxdigit)

// 現在把這個 bucket 變數的值插入對應的 counter[bucket] 容器的尾部

counter[bucket].push(arr[j]);

}// 把 counter[bucket] 容器裡的數依次取出

var pos = 0;

for(var j = 0; j < counter.length; j++) }}

}return arr;

}console.log(radixsort([99,15,48,75,46,37,90,100],3));

/*// 第一步

0 90 1001 2

345 15 75

6 46

7 37

8 48

9 99

=> 90 100 15 75 46 37 48 99

// 第二步

0 100

1 15

23 37

4 46 4856

7 75

89 90 99

=> 100 15 37 46 48 75 90 99

// 第三步

0 15 37 46 48 75 90 99

1 100 23

4567

89=> 15 37 46 48 75 90 99 100

*/

edit in js bin

a coder on the way swpuleo

演算法 排序之基數排序

基數排序也是穩定的內排序。因為它的實現是基於內部使用了穩定的排序實現的所以基數排序整體是穩定的,而且時間複雜度為o n 舉個例子 現在我們將一些3 多 位數排序,如果你說直接判斷就好的話,那你就太天真了,因為那就又變成看o nlgn 或者o n 如何能降低時間複雜度變成o n 呢?那就要使用線性時間...

排序演算法之基數排序

首先從多排序碼排序開始介紹基數排序。以撲克牌排序為例。每張撲克牌有兩個 排序碼 花色和面值。其有序關係為 如果把所有撲克牌排成以下次序 2,a,2,a,2,a,2,a 這就是多排序碼排序。排序後形成的有序序列叫做字典有序序列。一般情況下,假定有乙個n個元素的序列 v 0,v1 vn 1 且每個元素v...

排序演算法之基數排序

如果我們要排序的資料具有多個關鍵字域,那就可以採用基數排序的方法了。基數排序的主要思想是 假如參加排序的元素最高具有d位,有的數沒有d位那麼多,則在其欠缺的高位補0,將元素先按最低位 設最右邊的位為最低位 的值進行排序,然後按次低位進行排序.最後進行最高位的排序。基數排序如果想達到理想的目的,必須滿...