Counting Sort计数排序算法的实现(JavaScript)
计数排序是一种简单而高效的排序算法,适用于待排序元素具有一定范围的情况。它通过统计每个元素的出现次数,然后根据这些统计信息将元素放置到正确的位置上,从而完成排序。下面是用JavaScript实现的Counting Sort算法:
function countingSort(arr) {
if (arr.length <= 1) return arr;
// 找出数组中的最大值,确定计数数组的长度
let max = Math.max(...arr);
// 创建计数数组并初始化为0
let countArr = new Array(max + 1).fill(0);
// 统计每个元素的出现次数
for (let i = 0; i < arr.length; i++) {
countArr[arr[i]]++;
}
// 根据计数数组重新排序原数组
let sortedArr = [];
for (let i = 0; i < countArr.length; i++) {
while (countArr[i] > 0) {
sortedArr.push(i);
countArr[i]--;
}
}
return sortedArr;
}
// 测试
let arr = [5, 3, 9, 1, 4, 5, 8, 2