數據結構實驗之排序三:bucket sort
Time Limit:?150MS?Memory Limit:?65536KB
Submit?Statistic
Problem Description
根據人口普查結果,知道目前淄博市大約500萬人口,你的任務是幫助人口普查辦公室按年齡遞增的順序輸出每個年齡有多少人,其中不滿1周歲的按0歲計算,1到2周歲的按1歲計算,依次類推,大于等于100歲的老人全部按100歲計算。
Input
?輸入第一行給出一個正整數N(<=5000000),隨后連續給出N個整數表示每個人的年齡,數字間以空格分隔。
Output
?按年齡遞增的順序輸出每個年齡的人口數,人口數為0的不輸出,每個年齡占一行,數字間以一個空格分隔,行末不得有多余空格或空行。
?
Example Input
10 16 71 17 16 18 18 19 18 19 20
Example Output
16 2 17 1 18 3 19 2 20 1 71 1
DQE:
桶排序233
1 #include <iostream> 2 #include <cstdio> 3 using namespace std; 4 /*論代碼的精簡233*/ 5 int main() 6 { 7 int n; 8 while(scanf("%d",&n)!=EOF) 9 { 10 int f[101]={0},i,a,b=0; 11 for(i=1;i<=n;f[scanf("%d",&a),a=a>100?100:a,b=a>b?a:b,a]++,i++); 12 for(i=0;i<=b;f[i]?printf("%d %d\n",i,f[i]):1,i++); 13 } 14 return 0; 15 } 16 17 /*************************************************** 18 User name: *** 19 Result: Accepted 20 Take time: 144ms 21 Take Memory: 148KB 22 Submit time: 2016-12-11 20:58:24 23 ****************************************************/
?