zoukankan      html  css  js  c++  java
  • uva11462

    题目大意:

    给定n个居民的年龄(1-100),按从小到大输出

    输入:

    第一行一个整数n表示人数(0<n<=2000000)。

    接下来n个整数表示居民的年龄。

    输出:

    居民年龄从小到大输出。每个年龄之间一个空格。

    分析:

    这道题目很简单,关键是n很大,不可开数组全部存储后使用sort解决,不然太水了(虽然也很水)。

    既然不能全部存储那我们怎么解决呢,查看数据可知年龄的范围是1-100所以可以开一个数组计入1-100这100个数一共有几个,然后从小到大输出就可以了。

    分类:简单排序

    代码:

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    using namespace std;
    int main ()
    {
        int hashs[110];
        int n,x;
        while(scanf("%d",&n),n)
        {
            memset(hashs,0,sizeof(hashs));
            for(int i=0;i<n;++i)
            {
                scanf("%d",&x);
                hashs[x]++;
            }
            int f=1;
            for(int i=1;i<=100;++i)
            {
                for(int j=0;j<hashs[i];++j)
                {
                    if(!f)
                        printf(" ");
                    f=0;
                    printf("%d",i);
                }
            }
            printf("
    ");
        }
    }
    

      

  • 相关阅读:
    排序(六)插入排序
    集合类 collection接口 ArrayList
    面向对象四大特性
    多线程 interrupt()方法
    NIO Channel 管道
    NIOBuffer 缓冲区
    lamdba表达式
    cloneable以及深拷贝和浅拷贝
    Volatile关键字
    线程池
  • 原文地址:https://www.cnblogs.com/shuzy/p/3178694.html
Copyright © 2011-2022 走看看