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