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