• UVa11462 Age Sort


    B

    Age Sort

    Input: Standard Input

    Output: Standard Output

     

     

    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 (0<n<=2000000), the total number of people. In the next line, there are 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 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                             Output for Sample Input

    5

    3 4 2 1 5

    5

    2 3 2 3 1

    0

    1 2 3 4 5

    1 2 2 3 3

    Note: The memory limit of this problem is 2 Megabyte Only.


    Problem Setter: Mohammad Mahmudur Rahman

    Special Thanks: Shahriar Manzoor

    题解:排序个数N=2000000,快排显然不行,因为题目中说人的寿命都会小于100岁,因此重复的很多,用计数排序可以完美的解决此问题。

    View Code
     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 #include<string.h>
     4 long a[105];
     5 long n;
     6 int main(void)
     7 {
     8     long i,k,flag;
     9     while(scanf("%ld",&n)!=EOF)
    10     {
    11         if(n==0) break;
    12         memset(a,0,sizeof(a));
    13         for(i=0; i<n; i++)
    14         {
    15             scanf("%ld",&k);
    16             a[k]++;
    17         }
    18         flag=1;
    19         for(i=1; i<=100; i++)
    20             while(a[i])
    21             {
    22                if(flag)
    23                {
    24                 printf("%ld",i);
    25                 flag=0;
    26                }
    27                else
    28                printf(" %ld",i);
    29                 a[i]--;
    30             }
    31            printf("\n");
    32     }
    33     return 0;
    34 }
  • 相关阅读:
    python中多进程+协程的使用以及为什么要用它
    python爬虫——多线程+协程(threading+gevent)
    Python几种并发实现方案的性能比较
    Python threadpool传递参数
    python线程池(threadpool)模块使用笔记
    python下的select模块使用 以及epoll与select、poll的区别
    python中的select模块
    Python中threading的join和setDaemon的区别及用法
    python队列Queue
    和为S的连续正数序列
  • 原文地址:https://www.cnblogs.com/zjbztianya/p/2981230.html
Copyright © 2020-2023  润新知