编辑代码

#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;  
    }  
    //统计比I对应的元数小的元数的个数
    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;  
}