SDUT 3400 数据结构实验之排序三:bucket sort

数据结构实验之排序三:bucket sort

Time Limit: 150MS Memory Limit: 65536KB

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
",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 ****************************************************/
原文地址:https://www.cnblogs.com/Leroscox/p/6128694.html