题意:
给你200w个人的年龄,年龄的范围是1-100,然后让你从小到大排序输出所有人的年龄,题目还特意强调输入文件限制25MB,题目内存限制2MB.
思路:
比较经典又简单的一个题目了,很早以前就见过了,我们可以开一个数组num[101]的,每来一个年龄a我们就num[a]++,最后输出num[1]个1,num[2]个2...就行了。
#include<stdio.h>
#include<string.h>
int num[105];
int main ()
{
int n ,i ,a;
while(~scanf("%d" ,&n) && n)
{
memset(num ,0 ,sizeof(num));
for(i = 1 ;i <= n ;i ++)
{
scanf("%d" ,&a);
num[a] ++;
}
int mk = 0;
for(i = 1 ;i <= 100 ;i ++)
{
while(num[i]--)
{
if(!mk) printf("%d" ,i);
else printf(" %d" ,i);
mk = 1;
}
}
printf("
");
}
return 0;
}