欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

JavaScript中基数排序详解

程序员文章站 2022-04-10 12:49:10
...
本篇文章讲述了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中基数排序详解的详细内容,更多请关注其它相关文章!