Rumah >hujung hadapan web >tutorial js >JavaScript中基数排序详解

JavaScript中基数排序详解

韦小宝
韦小宝asal
2018-03-14 14:33:032318semak imbas

本篇文章讲述了JavaScript中基数排序,大家对JavaScript中基数排序不了解的话或者对JavaScript中基数排序感兴趣的话那么我们就一起来看看本篇文章吧, 好了废话少说进入正题吧

基数排序有两种方法

1、MSD 从高位开始进行排序

2、LSD 从低位开始进行排序

基数排序 vs 计数排序 vs 桶排序


这三种排序算法都利用了桶的概念,但对桶的使用方法上有明显差异:

基数排序:根据键值的每位数字来分配桶

计数排序:每个桶只存储单一键值

桶排序:每个桶存储一定范围的数值

LSD基数排序动图演示:

777.gif

基数排序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实现的计数排序与基数排序算法示例

Atas ialah kandungan terperinci JavaScript中基数排序详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn