这个题其实就是数据量比较大,如果用普通的排序方法根本无法通过测试。
而本题有一个特殊性,年龄的区间在我们的生活中可以确定,所以这个题完全可以用基数排序进行解决。
代码:
#include<cstdio>
#include<cstring>
#include<iostream>
#define MAX 110
using namespace std;
int age[MAX];
int main()
{
int n;
while(scanf("%d",&n)&&n)
{
for(int i=0;i<n;i++)
{
int ita;
scanf("%d",&ita);
age[ita]++;
}
int flag=0;
for(int i=0;i<MAX;i++)
{
while(age[i])
{
if(flag)
printf(" %d",i);
else
{
flag=1;
printf("%d",i);
}
age[i]--;
}
}
printf("\n");
}
return 0;
}