首頁  >  文章  >  web前端  >  JavaScript中基數排序詳解

JavaScript中基數排序詳解

韦小宝
韦小宝原創
2018-03-14 14:33:032276瀏覽

這篇文章講述了JavaScript中基數排序,大家對JavaScript中基數排序不了解的話或對JavaScript中基數排序感興趣的話那麼我們就一起來看看這篇文章吧, 好廢話少說進入正題吧

基數排序有兩種方法

1、MSD 從高位開始進行排序

2、 LSD 從低位開始進行排序

基數排序vs 計數排序vs 桶排序


這三種排序演算法都利用了桶的概念,但對桶的使用方法有明顯差異:

基數排序:根據鍵值的每位數字來分配桶

計數排序 :每個桶只儲存單一鍵值

桶排序:每個桶儲存一定範圍的數值

LSD基數排序動圖示範:

JavaScript中基數排序詳解

基數排序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;}

以上就是這篇文章的所有內容,大家要是還不太了解的話,可以自己多實現兩邊就很容易掌握了哦!

相關推薦:

JS實作的計數排序與基數排序演算法範例

#

以上是JavaScript中基數排序詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn