【九度】题目1374:所有员工年龄排序
2013-12-09 15:07
253 查看
题目地址:http://ac.jobdu.com/problem.php?pid=1374
时间限制:1 秒内存限制:32 兆特殊判题:否提交:957解决:338
题目描述:
公司现在要对所有员工的年龄进行排序,因为公司员工的人数非常多,所以要求排序算法的效率要非常高,你能写出这样的程序吗?
输入:
输入可能包含多个测试样例,对于每个测试案例,
输入的第一行为一个整数n(1<= n<=1000000):代表公司内员工的人数。
输入的第二行包括n个整数:代表公司内每个员工的年龄。其中,员工年龄age的取值范围为(1<=age<=99)。
输出:
对应每个测试案例,
请输出排序后的n个员工的年龄,每个年龄后面有一个空格。
样例输入:
5
43 24 12 57 45
样例输出:
12 24 43 45 57
答疑:
解题遇到问题?分享解题心得?讨论本题请访问:http://t.jobdu.com/thread-8097-1-1.html
这个题,强调员工数量很多的情况下,使用排序一定会超时。
还是巧妙使用数组,将员工年龄值当做数组的下标,统计相同年龄员工人数。
循环数组,依次输出结果。
C++ AC
Java AC
时间限制:1 秒内存限制:32 兆特殊判题:否提交:957解决:338
题目描述:
公司现在要对所有员工的年龄进行排序,因为公司员工的人数非常多,所以要求排序算法的效率要非常高,你能写出这样的程序吗?
输入:
输入可能包含多个测试样例,对于每个测试案例,
输入的第一行为一个整数n(1<= n<=1000000):代表公司内员工的人数。
输入的第二行包括n个整数:代表公司内每个员工的年龄。其中,员工年龄age的取值范围为(1<=age<=99)。
输出:
对应每个测试案例,
请输出排序后的n个员工的年龄,每个年龄后面有一个空格。
样例输入:
5
43 24 12 57 45
样例输出:
12 24 43 45 57
答疑:
解题遇到问题?分享解题心得?讨论本题请访问:http://t.jobdu.com/thread-8097-1-1.html
这个题,强调员工数量很多的情况下,使用排序一定会超时。
还是巧妙使用数组,将员工年龄值当做数组的下标,统计相同年龄员工人数。
循环数组,依次输出结果。
C++ AC
#include <stdio.h> #include <string.h> int array[100]; int i,j,n; int main(){ while(scanf("%d",&n) != EOF){ memset(array, 0, sizeof(array)); int num; for(i = 0 ; i < n; i++){ scanf("%d",&num); array[num]++; } for(i = 1 ; i < 100; i++){ for(j = 0 ; j < array[i]; j++){ printf("%d ",i); } } printf("\n"); } return 0; } /************************************************************** Problem: 1374 User: wangzhenqing Language: C++ Result: Accepted Time:740 ms Memory:1020 kb ****************************************************************/
Java AC
import java.io.StreamTokenizer; public class Main { /* * 1374 */ public static void main(String[] args)throws Exception{ StreamTokenizer st = new StreamTokenizer(System.in); while (st.nextToken() != StreamTokenizer.TT_EOF) { int n = (int) st.nval; int[] array = new int[100]; for (int i = 0; i < n; i++) { st.nextToken(); int num = (int) st.nval; array[num]++; } StringBuffer sb = new StringBuffer(); for (int i = 0; i < 100; i++) { for (int j = 0; j < array[i]; j++) { sb.append(i); sb.append(" "); } } System.out.println(sb.toString()); } } } /************************************************************** Problem: 1374 User: wzqwsrf Language: Java Result: Accepted Time:1630 ms Memory:58436 kb ****************************************************************/
相关文章推荐
- 题目1374:所有员工年龄排序
- 九度OJ 题目17:所有员工年龄排序
- 题目1374:所有员工年龄排序
- 九度0J 1374 所有员工年龄排序
- 九度oj-1374-所有员工年龄排序
- 九度0J 1374 所有员工年龄排序
- 题目1374:所有员工年龄排序
- 题目:某公司有几万名员工,请完成一个时间复杂度为O(n)的算法对该公司员工的年龄作排序,可使用O(1)的辅助空间。
- 对公司所有员工的年龄排序
- 对公司所有员工的年龄排序
- 所有员工年龄排序
- 算法题目---求公司内员工的年龄排序---用空间换取时间O(n)
- 所有员工年龄排序
- Java实现对公司所有员工的年龄排序
- 剑指offer 2.4 在O(n)时间排序公司所有员工的年龄
- oracle 查询在2010/1/1入职的所有男员工并按年龄排序
- 九度oj 题目1007:奥运排序问题 【ZJU2010考研机试题3】【容易理解混乱】
- 题目及解答:策略模式(对Person类按姓名、学号、年龄进行排序)
- 【九度】题目1130:日志排序
- 九度 题目1202:排序