js排序算法-计数排序
作者:
小猪佩奇的王子 | 来源:发表于
2019-10-31 11:41 被阅读0次/**
* 计数排序
* 分配一个临时数组,长度比待排序列表中最大值大1
* 遍历待排序数组,用元素作为临时数组的下标,并计数
* 最后遍历临时数组,按顺序取值即可
* @param {*} arr
*/
function countSort(arr) {
var max = Math.max.apply(null, arr)
var bucket = new Array(max + 1)
var length = arr.length
var bucketLen = max + 1
var sortedIndex = 0
for (var i = 0; i < length; i++) {
if (!bucket[arr[i]]) {
bucket[arr[i]] = 0
}
bucket[arr[i]]++
}
for (var j = 0; j < bucketLen; j++) {
for (var x = 0; x < bucket[j]; x++) {
if (bucket[j] > 0) {
arr[sortedIndex++] = j
}
}
}
console.log(arr)
}
本文标题:js排序算法-计数排序
本文链接:https://www.haomeiwen.com/subject/ktozvctx.html
网友评论