您的位置:首页 > 其它

uva11462 - Age Sort

2013-07-08 21:24 337 查看
题目大意:

给定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("\n");
}
}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: