UVA11462年龄排序
排序 年龄
2023-09-11 14:14:00 时间
题意:
给你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("\n");
}
return 0;
}
给你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("\n");
}
return 0;
}
相关文章
- Java实现Labeling Balls(拓扑排序的应用)
- 【刷题】面筋-数据结构-排序算法的复杂度、稳定性、内部外部排序
- list容器之反转和排序
- 【hihoCoder挑战赛28A】异或排序
- iOS 小组件 widget 拖动排序
- 习题 6.19 用指向指针的指针的方法对5个字符串排序并输出。
- C++选择排序小练
- Python编程:排序算法之选择排序
- C语言经典排序算法实现(二):选择排序、插入排序、希尔排序、归并排序、快速排序
- 搜索旋转排序数组——好久没有刷题了,核心是分3段处理,最前的升序段,最后的升序段,需要利用A[0],A[-1],A[mid]和target关系。
- 刷题记录:牛客NC14893栈和排序
- 785. 快速排序
- 归并排序应用:小数之和