本篇文章讲述了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;}
以上就是本篇文章的所有内容,大家要是还不太了解的话,可以自己多实现两边就很容易掌握了哦!
相关推荐:
js实现的计数排序与基数排序算法示例
以上就是javascript中基数排序详解的详细内容。