计数排序
function countingSort(arr) {
// JavaScript 数组本身就是动态分配的内存,
// 对于 JavaScript 简略版本,完全可以不去考虑额外结构内存分配,
let minVal = Math.min(...arr);
let maxVal = Math.max(...arr);
const c = new Array(maxVal - minVal + 1);
// const c = [];
arr.forEach(item => {
let index = item - minVal;
let counter = c[index];
c[index] = counter ? counter + 1 : 1;
})
arr.splice(0); // 清空数组
c.forEach((item, index) => {
while(item) {
arr.push(index + minVal);
item --;
}
});
return arr;
}最后更新于