UVA11462——排序——Age Sort

You are given the ages (in years) of all people of a country with at least 1 year of age. You know that no individual in that country lives for 100 or more years. Now, you are given a very simple task of sorting all the ages in ascending order.

Input:

There are multiple test cases in the input file. Each case starts with an integer n (0 < n ≤ 2000000), the total number of people. In the next line, there are n integers indicating the ages. Input is terminated with a case where n = 0. This case should not be processed.

Output:

For each case, print a line with n space separated integers. These integers are the ages of that country sorted in ascending order.

Warning: Input Data is pretty big (∼ 25 MB) so use faster IO.

Sample Input:

5

3 4 2 1 5

5

2 3 2 3 1

0

Sample Output:

1 2 3 4 5

1 2 2 3 3

大意:用了计数排序的思想,不过对于年龄就不超过100的说...存储在每一个状态的人数,再输出

#include<stdio.h>
#define max 120
int main()
{
    int age[max];
    int flag,i,n,item;
    while(~scanf("%d", &n)&&n)
    {
        for(int i = 1; i < max;i++)
        age[i] = 0;
        for(int i = 1; i <= n; i++)
         {
                scanf("%d", &item);
                age[item]++;
         }
         flag = 0;i = 1;
            for(int i = 1 ; i < max; i++)
            {
                while(age[i])
                {
                    if(flag == 0)
                    {
                        printf("%d",i);
                        flag = 1;
                    }
                    else printf(" %d", i);
                age[i]--;
                }

            }
            printf("\n");
    }
    return 0;
}
View Code

 

posted @ 2015-03-26 20:18  Painting、时光  阅读(136)  评论(0编辑  收藏  举报