编辑代码

#include <stdio.h>
void display (int a[],int len){
	for(int i=0;i<len;i++){
		printf("%d ",a[i]);
	} 
	printf("\n");
}
int findMax(int a[],int len){
    int max=a[0];
    for(int i=1;i<len;i++){
        if(max<a[i]){
            max=a[i];
        }
    }
    return max;
}
void countSort(int a[],int len){
    static int bLen=10;
    int b[bLen];
    int c[bLen];
    int d[bLen];
    for(int i=0;i<bLen;i++){
        b[i]=0;
        c[i]=0;
        d[i]=0;
    }
    for(int i=0;i<len;i++){
        b[a[i]]++;
    }
    for(int i=1;i<bLen;i++){
        for(int j=i;j>=0;j--){
            c[i]+=b[j];
        }
    }
    for(int i=len-1;i>=0;i--){
    	c[a[i]]-=1;
    	d[c[a[i]]]=a[i];
	}
	for(int i=0;i<len;i++){
		a[i]=d[i];
	}
}

int main () {
    int a[]={1,6,2,7,3,8,3,2,4,5,2,1,2,3,5,6};
	countSort(a,sizeof(a)/sizeof(int));
	display(a,sizeof(a)/sizeof(int));
    int a1[]={3,1,2,4,6,2,9,3,5,3,5,3,2,5,8,4,6};
	countSort(a1,sizeof(a1)/sizeof(int));
	display(a1,sizeof(a1)/sizeof(int));
    int a2[]={3,2,5,6,3,6,8,8,3,3,7,9,0,4,2};
	countSort(a2,sizeof(a2)/sizeof(int));
	display(a2,sizeof(a2)/sizeof(int));
    
}