题目描述:

公司现在要对所有员工的年龄进行排序,因为公司员工的人数非常多,所以要求排序算法的效率要非常高,你能写出这样的程序吗?

输入:

输入可能包含多个测试样例,对于每个测试案例,

输入的第一行为一个整数n(1<= n<=1000000):代表公司内员工的人数。

输入的第二行包括n个整数:代表公司内每个员工的年龄。其中,员工年龄age的取值范围为(1<=age<=99)。

输出:

对应每个测试案例,

请输出排序后的n个员工的年龄,每个年龄后面有一个空格。

样例输入:
5
43 24 12 57 45
样例输出:
12 24 43 45 57

开始没多想,直接快排
 #include <cstdio>
#include <algorithm> int cmp(const void *a, const void *b) {
int at = *(int *)a;
int bt = *(int *)b;
return at > bt;
} int num[];
int n; int main(int argc, char const *argv[])
{
while(scanf("%d",&n) != EOF) {
for(int i = ; i < n; i++) {
scanf("%d",&num[i]);
}
qsort(num, n, sizeof(int), cmp);
for(int i = ; i < n; i++) {
printf("%d ",num[i]);
}
puts("");
}
return ;
}

超时

立马改成堆排序

 #include <cstdio>
#include <algorithm>
#include <queue>
using namespace std; int n; priority_queue <int, vector<int>,greater<int> >que;
int main(int argc, char const *argv[])
{
while(scanf("%d",&n) != EOF) {
for(int i = ; i < n; i++) {
int tmp;
scanf("%d",&tmp);
que.push(tmp);
}
while(!que.empty()) {
int t = que.top();que.pop();
printf("%d ",t);
}
puts("");
}
return ;
}

居然还超时

仔细看了看题,改成桶排序

 #include <cstdio>
#include <cstring>
int n;
int age[]; int main(int argc, char const *argv[])
{
while(scanf("%d",&n) != EOF) {
memset(age, , sizeof(age));
while(n--){
int tmp;
scanf("%d",&tmp);
age[tmp]++;
}
for(int i = ; i <= ; i++) {
for(int j = ; j < age[i];j++) {
printf("%d ",i);
}
}
puts("");
}
return ;
}

再优化一下

 #include <cstdio>
#include <cstring>
int n;
int age[] = {}; int main(int argc, char const *argv[])
{
while(scanf("%d",&n) != EOF) {
while(n--){
int tmp;
scanf("%d",&tmp);
age[tmp]++;
}
for(int i = ; i <= ; i++) {
while(age[i]) {
printf("%d ",i);
age[i]--;
}
}
puts("");
}
return ;
}

九度oj 题目1374:所有员工年龄排序的更多相关文章

  1. 九度oj 题目1190:大整数排序

    题目1190:大整数排序 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:4142 解决:1867 题目描述: 对N个长度最长可达到1000的数进行排序. 输入: 输入第一行为一个整数N,( ...

  2. 九度oj 题目1187:最小年龄的3个职工

    题目描述: 职工有职工号,姓名,年龄.输入n个职工的信息,找出3个年龄最小的职工打印出来. 输入: 输入第一行包括1个整数N,1<=N<=30,代表输入数据的个数. 接下来的N行有N个职工 ...

  3. 九度oj 题目1349:数字在排序数组中出现的次数

    题目描述: 统计一个数字在排序数组中出现的次数. 输入: 每个测试案例包括两行: 第一行有1个整数n,表示数组的大小.1<=n <= 10^6. 第二行有n个整数,表示数组元素,每个元素均 ...

  4. 九度oj 题目1099:后缀子串排序

    题目描述: 对于一个字符串,将其后缀子串进行排序,例如grain其子串有:grain rain ain in n 然后对各子串按字典顺序排序,即: ain,grain,in,n,rain 输入: 每个 ...

  5. 九度OJ 题目1384:二维数组中的查找

    /********************************* * 日期:2013-10-11 * 作者:SJF0115 * 题号: 九度OJ 题目1384:二维数组中的查找 * 来源:http ...

  6. hdu 1284 关于钱币兑换的一系列问题 九度oj 题目1408:吃豆机器人

    钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

  7. 九度oj题目&amp;吉大考研11年机试题全解

    九度oj题目(吉大考研11年机试题全解) 吉大考研机试2011年题目: 题目一(jobdu1105:字符串的反码).    http://ac.jobdu.com/problem.php?pid=11 ...

  8. 九度oj 题目1007:奥运排序问题

    九度oj 题目1007:奥运排序问题   恢复 题目描述: 按要求,给国家进行排名. 输入:                        有多组数据. 第一行给出国家数N,要求排名的国家数M,国家号 ...

  9. 九度oj 题目1087:约数的个数

    题目链接:http://ac.jobdu.com/problem.php?pid=1087 题目描述: 输入n个整数,依次输出每个数的约数的个数 输入: 输入的第一行为N,即数组的个数(N<=1 ...

随机推荐

  1. python基础教程总结3—字典

    1.字典 1.1 字典类型与序列类型的区别: 存取和访问数据的方式不同. 序列类型只用数字类型的键(从序列的开始按数值顺序索引): 映射类型可以用其他对象类型作键(如:数字.字符串.元祖,一般用字符串 ...

  2. 为了少点击几次,自己写了一个Chrome插件

    缘由 chrome应用商店有三款二维码插件,自己一直使用的第一款.这三款插件有且只有一个功能就是生成当前页面的URL的二维码. 其实这个功能基本上满足了需要移动端开发在微信里打开页面进行调试的情况. ...

  3. MovieReview—Transformers.The.Last.Knight.(变形金刚5:最后的骑士.)

     Gorgeous Effect & Bad Plot   I can only say that the movie's effects are shocking. However, the ...

  4. jquery绑定事件的系统参数传递方法

    如果是传递的事件自带函数,,可使用以下语法(以鼠标移动事件为例): init: function () { $(document).on("mousemove",loginOper ...

  5. Android(java)学习笔记118:BroadcastReceiver之 外拨电话的广播接收者

    1. 外拨电话的广播接收者: 首先我们示例工程一览表如下: (2)首先我们还是买一个收音机,定义一个OutCallReceiver继承自BroadcastReceiver,onReceive()方法中 ...

  6. 两个有序数列,求中间值 Median of Two Sorted Arrays

    原题: There are two sorted arrays nums1 and nums2 of size m and n respectively.Find the median of the ...

  7. js学习笔记-字符串

    1.需要注意的是,JavaScript 的字符串是不可变的(immutable),String 类定义的方法都不能改变字符串的内容.像 String.toUpperCase() 这样的方法,返回的是全 ...

  8. axios的post请求方法---以Vue示例

    Axios向后端提交数据的参数格式是json,而并非用的是form传参,post表单请求提交时,使用的Content-Type是application/x-www-form-urlencoded,而使 ...

  9. FTPClient:enterLocalPassiveMode()方法简单说明

    问题:在Java程序中,使用FTPClient下载FTP文件的时候,可以下载到FTP服务器上的文件夹,但是里面的文件没有下载到本地. 分析:这个涉及到FTP在使用的过程中,客户端和服务端连接过程中,端 ...

  10. 【离线 线段树分治】bzoj4025: 二分图

    昨天mac的gdb挂了,今天怎么笔记本的gdb也挂了…… Description 神犇有一个n个节点的图.因为神犇是神犇,所以在T时间内一些边会出现后消失.神犇要求出每一时间段内这个图是否是二分图.这 ...