#include <stdio.h>
int main(int argc, const char * argv[]) {
//book1維數(shù)組墓贿,t:輸入的幾個(gè)數(shù)的下標(biāo)本橙,n:總數(shù)量
int book[1001],i,j,t,n;
for(i = 0;i <= 1000;i++){
//初始為0
book[i] = 0;
}
//輸入一個(gè)數(shù)n艇拍,表示接下來有n個(gè)數(shù)
scanf("%d",&n);
for (int i = 0; i < n; i++) {
//把每一個(gè)數(shù)讀到變量t中
scanf("%d",&t);
//進(jìn)行計(jì)數(shù)私爷,對(duì)編號(hào)為t的桶放一個(gè)小旗子
book[t]++;
}
//從高到低
// for(i = 1000;i >= 0;i--){
// printf("%d ",i);
//
// //j=1,book數(shù)組中默認(rèn)的裝的是0所以正常再?zèng)]有錄入數(shù)字的位置j>book[i],只有錄入了數(shù)字的才會(huì)打印信息
// for(j = 1;j <= book[i];j++){
// printf("\n------%d\n ",i);
// printf("-------個(gè)數(shù)%d\n",book[i]);
// }
// }
//從低到高
for(i = 0;i <= 1000;i++){
printf("%d ",i);
//j=1,book數(shù)組中默認(rèn)的裝的是0所以正常再?zèng)]有錄入數(shù)字的位置j>book[i],只有錄入了數(shù)字的才會(huì)打印信息
for(j = 1;j <= book[i];j++){
printf("\n------%d\n ",i);
printf("-------個(gè)數(shù)%d\n",book[i]);
}
}
getchar();
return 0;
}
原理:創(chuàng)建一個(gè)總個(gè)數(shù)的數(shù)組,將里面的元素都置為0斗躏,輸入總個(gè)數(shù)范圍內(nèi)的數(shù)逝慧,將下標(biāo)為該數(shù)的元素值+1,排序的時(shí)候判斷數(shù)組總下標(biāo)為輸入的一些數(shù)的元素值是否大于1啄糙,如果大于則執(zhí)行笛臣,則完成了簡單桶排序