function countingSort(arr) {
const n = arr.length;
let max = arr[0];
let min = arr[0];
for (let i = 1; i < n; i++) {
if (arr[i] > max) {
max = arr[i];
}
if (arr[i] < min) {
min = arr[i];
}
}
const countArray = new Array(max - min + 1).fill(0);
for (let i = 0; i < n; i++) {
countArray[arr[i] - min]++;
}
let index = 0;
for (let i = 0; i < countArray.length; i++) {
while (countArray[i] > 0) {
arr[index++] = i + min;
countArray[i]--;
}
}
}
const arr = [4, 2, 7, 1, 3, 6, 5];
console.log("原始数组:", arr);
countingSort(arr);
console.log("排序后的数组:", arr);