Javascript 中的基数排序?
javascriptfront end technologyobject oriented programming更新于 2025/11/21 7:40:17
基数排序算法根据数字的有效数字或值(基数)将整数分配到存储桶中。基数基于数组值的数字系统。让我们看看如何实现 −
示例
function radixSort(arr) {
// 找到最大数字并将其乘以 10 得到一个数字
// 最大数字的位数 + 1
const maxNum = Math.max(...arr) * 10;
let divisor = 10;
while (divisor < maxNum) {
// 为 0-9 中的每个数字创建 bucket 数组
let buckets = [...Array(10)].map(() => []);
// 对于每个数字,获取当前有效数字并将其放入相应的 bucket 中
for (let num of arr) {
buckets[Math.floor((num % divisor) / (divisor / 10))].push(num);
}
// 通过连接所有子数组重建数组
arr = [].concat.apply([], buckets);
// 移动到下一个有效数字
divisor *= 10;
}
return arr;
}
console.log(radixSort([5,3,88,235,65,23,4632,234]))
输出
[ 3, 5, 23, 65, 88, 234, 235, 4632 ]
相关文章
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

