<p>题目:让计算机读入五个数然后将这五个数从大到小和从小到大输出;</p>
//桶排序 (从小到大)
#include <stdio.h>
int main(){
int book[100]={0},i,t,m;
for(i=0;i<5;i++){
scanf("%d",&t);
book[t]++;
}
for(i=0;i<10;i++){
for(m=0;m<book[i];m++){
printf("%d\n",i);
}
}
return 0;
}
//桶排序 (从大到小)
#include <stdio.h>
int main(){
int book[100]={0},i,t,m;
for(i=0;i<5;i++){
scanf("%d",&t);
book[t]++;
}
for(i=9;i>=0;i--){
for(m=0;m<book[i];m++){
printf("%d\n",i);
}
}
return 0;
}
桶排列问题
这个算法就好比有11个桶,编号从0~10.每出现了一个数,就在对应编号的桶中放一个小旗子,最后只要数数每个桶中有几个小旗子就好了。另外,此处的没个桶的作用其实就是“标记”每个数出现的次数,因此,这个标记的数组可以换一个贴切的名字book;