這篇文章講述了JavaScript中基數排序,大家對JavaScript中基數排序不了解的話或對JavaScript中基數排序感興趣的話那麼我們就一起來看看這篇文章吧, 好廢話少說進入正題吧
基數排序有兩種方法
1、MSD 從高位開始進行排序
2、 LSD 從低位開始進行排序
基數排序vs 計數排序vs 桶排序
這三種排序演算法都利用了桶的概念,但對桶的使用方法有明顯差異:
基數排序:根據鍵值的每位數字來分配桶
計數排序 :每個桶只儲存單一鍵值
桶排序:每個桶儲存一定範圍的數值
LSD基數排序動圖示範:
基數排序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;}
以上就是這篇文章的所有內容,大家要是還不太了解的話,可以自己多實現兩邊就很容易掌握了哦!
相關推薦:
以上是JavaScript中基數排序詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!