算法竞赛入门经典 高效算法之年龄排序
2014-03-01 13:50
169 查看
算法竞赛入门经典 高效算法之年龄排序
要求:输入文件约25M,而运行限制内存只有2M。
/*
Name: 高效算法之年龄排序
Copyright: 刘汝佳
Author: Analyst
Date: 01/03/14 13:29
Description: dev-cpp 5.5.3
*/
#include <stdio.h>
#include <string.h> // 为了使用menset函数
int main()
{
int n, x, c[101];
while (scanf("%d", &n) == 1 && n)
{
memset(c, 0, sizeof(c)); //将数组c[101]全部初始化为0
for (int i = 0; i < n; ++i)
{
scanf ("%d", &x);
++c[x];
}
int first = 1; //标志first=1 表示还没有输出过整数
for (int i = 1; i <= 100; ++i)
for (int j = 0; j < c[i]; ++j)
{
if (!first) printf(" "); //从第二个数开始,每输出一个数之前输出一个空格
first = 0;
printf("%d",i);
}
printf("\n");
}
return 0;
}
ps:年龄整数范围很小(1~100),这里用计数排序。很好!!!
memset函数解释:
memset(c, 0, sizeof(c)); //将数组c[101]全部初始化为0
相当于:
for (int i = 0; i < sizeof(c); ++i)
{
c[i] = 0;
}
其中因为int c[101],所以sdizeof(c) = 100;
要求:输入文件约25M,而运行限制内存只有2M。
/*
Name: 高效算法之年龄排序
Copyright: 刘汝佳
Author: Analyst
Date: 01/03/14 13:29
Description: dev-cpp 5.5.3
*/
#include <stdio.h>
#include <string.h> // 为了使用menset函数
int main()
{
int n, x, c[101];
while (scanf("%d", &n) == 1 && n)
{
memset(c, 0, sizeof(c)); //将数组c[101]全部初始化为0
for (int i = 0; i < n; ++i)
{
scanf ("%d", &x);
++c[x];
}
int first = 1; //标志first=1 表示还没有输出过整数
for (int i = 1; i <= 100; ++i)
for (int j = 0; j < c[i]; ++j)
{
if (!first) printf(" "); //从第二个数开始,每输出一个数之前输出一个空格
first = 0;
printf("%d",i);
}
printf("\n");
}
return 0;
}
ps:年龄整数范围很小(1~100),这里用计数排序。很好!!!
memset函数解释:
memset(c, 0, sizeof(c)); //将数组c[101]全部初始化为0
相当于:
for (int i = 0; i < sizeof(c); ++i)
{
c[i] = 0;
}
其中因为int c[101],所以sdizeof(c) = 100;
相关文章推荐
- 算法竞赛入门经典:第八章 高效算法设计 8.4快速排序应用之第k小的数
- ( 设计高效算法 ) 年龄排序 Age Sort Uva 11462
- 题目:某公司有几万名员工,请完成一个时间复杂度为O(n)的算法对该公司员工的年龄作排序,可使用O(1)的辅助空间。
- 高效链表排序-归并算法
- 实现一个算法,对公司员工年龄进行排序,时间效率要求O(n)
- 算法题目---求公司内员工的年龄排序---用空间换取时间O(n)
- 算法竞赛入门经典:第八章 高效算法设计 8.6二分查找之lowerBound
- 实现一个算法,对公司员工年龄进行排序,时间效率要求O(n)
- 算法竞赛入门经典(第二版) 刘汝佳-第八章 高效算法设计 例题(13/19)
- 算法竞赛入门经典:第八章 高效算法设计 8.7二分查找之upperBound
- 某公司有几万名员工,请完成一个时间复杂度为O(n)的算法对该公司员工的年龄作排序,可使用O(1)的辅助空间
- 算法竞赛入门经典:第八章 高效算法设计 8.12非线性方程求根
- 常用的高效「排序」算法
- 算法竞赛入门经典:第八章 高效算法设计 8.16贪心之乘船问题
- 算法竞赛入门经典:第八章 高效算法设计 8.17 贪心之选择不相交区间
- 【练习】数据结构与算法练习题之高效排序
- 数据结构与算法练习题之高效排序
- 算法竞赛入门经典:第八章 高效算法设计 8.1动态规划之最大连续和
- 高效算法设计_再谈排序和检索(归并排序,逆序数对)
- 算法竞赛入门经典:第八章 高效算法设计 8.2归并排序