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

 

你可能感兴趣的:(sort)