编辑代码

#include <stdio.h>

void countSort(int arr[],int len,int orderedArr[]){

    //需要一个统计的数组
    int count[len];

    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]++;
            }
        }
    }

    //排序
    for(int i=0;i<len;++i){
        orderedArr[count[i]]=arr[i];
    }
}

void printArray(int arr[],int len){
    for(int i=0;i<len;++i){
        printf("%d ",arr[i]);
    }
    printf("\n");
}

int main () {
    
    int arr[]={5,5,7,6,2,79,3,57};
    int len = sizeof(arr) / sizeof(arr[0]);
    int orderedArr[len];
    countSort(arr,len,orderedArr);
    printArray(orderedArr,len);
    return 0;
}