#include<stdio.h>#include<stdlib.h>voidcountingSort(intarray[], int size, int range){
int count[range + 1], i;
for (i = 0; i <= range; ++i) {
count[i] = 0;
}
for (i = 0; i < size; i++) {
count[array[i]]++;
}
int index = 0;
for (i = 0; i <= range; i++) {
while (count[i]-- > 0) {
array[index++] = i;
}
}
}
intmain(){
intarray[] = {5, 4, 2, 7, 8, 6, 1};
int n = sizeof(array) / sizeof(array[0]);
int range = 8;
countingSort(array, n, range);
printf("排序后数组: \n");
for (int i = 0; i < n; i++) {
printf("%d ", array[i]);
}
return0;
}