PIPIOJ 1188: 年龄排序

题目链接:
传送门

题目描述:
给定若干居民年龄 (1<=age<=100),把他们从小到大按照顺序输出。

输入:
第一行为整数n (0<n<=2000000),代表居民总数。
以下包括n个居民的年龄。

输出:
输出居民排序后的年龄。

样例输入:
5
3 4 5 1 2

样例输出:
1 2 3 4 5

题目思路:
本题看上去简单,实则题目限制了内存,开不出一个大小为2000001的数组。这里我们选择桶排序来解决此题。

桶排序c参考代码:

#include <stdio.h>
#include <string.h>

int main()
{
    
    
	int age[101],i,j,t,n;
	memset(age,0,sizeof(age));
		
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
    
    
		scanf("%d",&t);
		age[t]++;
	}
	
	for(i=1;i<=100;i++) 
	{
    
    
	 for(j=1;j<=age[i];j++) 
		printf("%d ",i);
    }
		
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_46139801/article/details/115032754