zoukankan      html  css  js  c++  java
  • UVa 11462 Age Sort

    解题报告:给若干个居民的年龄排序,年龄的范围在1到100之间,输入的总人数在0到200W。这题要注意的输入的文件约有25MB,而内存限制为2MB,所以如果人数是像200W这样多的话,甚至都不能把它们都读入内存,所以就不能用快速排序等各种排序,只能通过标记来进行排序,这题很明显的一个特征就是要排序的数字都不大,只有1到100,要排序的数字的个数大于要排序的数字的范围,所以我们可以定义一个数组age[105],然后将他各个都初始化为0,若输入了一个数,则将以这个数为下标的上标相应的加1,表示年龄是这个数字的人有多少个。最后只要从1到100将这些数字根据它们的个数输出来就可以了.

     1 #include<cstdio>
     2 #include<cstring>
     3 int n,age[101];
     4 int main() {
     5     while(scanf("%d",&n)&&n) {
     6         int a;
     7         memset(age,0,sizeof(age));
     8         for(int i=0;i<n;++i) {
     9             scanf("%d",&a);
    10             age[a]++;
    11         }
    12         bool flag = 1;
    13         for(int i=1;i<=100;++i)
    14         for(int j=0;j<age[i];++j) {
    15             if(!flag) printf(" ");
    16             flag=0;
    17             printf("%d",i);
    18         }
    19         
    20         printf("
    ");
    21     }
    22     return 0;
    23 }
    View Code
  • 相关阅读:
    day10 基本数据类型介绍-整形的魔法
    python 快捷键
    F5负载均衡 简要原理解析以及命令行命令
    Python之路(2)
    Pycharm的安装
    集合框架(Collection和Collections的区别)
    集合框架(04)HashMap扩展知识
    集合框架(04)HashMap
    集合框架(03)泛型
    MVC
  • 原文地址:https://www.cnblogs.com/xiaxiaosheng/p/3157433.html
Copyright © 2011-2022 走看看