#include<stdio.h>
int main(void){
int a[]={1,3,5,9,2,4,10,8,7};
int aLen = sizeof(a)/sizeof(int);
//求最大值防止越界
int max = a[0];
for(int i = 0;i < aLen;i++){
if(a[i] > max)
max = a[i];
}
//b数组为桶
int bLen = max + 1;
int b[bLen]={0};
for(int i = 0;i < aLen;i++){
b[a[i]]++;
}
//长度与a数组相等(c为排序后的数组)
int cLen = aLen;
int c[cLen];
int index = 0;//index为下标
for(int i = 0;i < bLen;i++){
if(b[i] != 0){//若桶中有值
for(int j = 1;j <= b[i];j++);
c[index++] = i;
// printf("%d",i);
}
}
for(int i = 0;i < cLen;i++){
printf("%d ",c[i]);
}
return 0;
}
2182

被折叠的 条评论
为什么被折叠?



