#include <stdio.h>
#include <stdlib.h>
void countSort(int arr[], int len, int orderedArr[]) {
int *count = (int*)malloc(len * sizeof(int));
for (int i = 0; i < len; ++i) {
count[i] = 0;
}
for (int i = 0; i < len; ++i) {
for (int j = i+1; j < len; ++j) {
if (arr[i] > arr[j]) {
++count[i];
}
else {
++count[j];
}
}
}
printf("计数数组:");
printArray(count,len);
for (int i = 0; i < len; ++i) {
orderedArr[count[i]] = arr[i];
}
free(count);
}
void printArray(int arr[], int len) {
for (int i = 0; i < len; ++i) {
printf("%d ", arr[i]);
}
printf("\n");
}
int main() {
printf("排序之前:");
int arr[] = {10,20,15,60,35,30};
int orderedArr[6];
printArray(arr, 6);
countSort(arr, 6, orderedArr);
printf("排序之后:");
printArray(orderedArr, 6);
return 0;
}