1.1.1 中文题目
Description
FJ想要调查奶牛的平均水平。他想知道所有奶牛的牛奶产出量的中值:这些奶牛中的一半提供等于或者多余这个值;一半小于或者等于这个值。
给一个奇数N(1 <= N < 10,000)个奶牛和他们的牛奶输出量(1..1,000,000),找出这些牛奶的中值。
Input
第一行:一个整数N
第二行:2…N+1每行包括一个整数表示这个牛的奶产出量。
Output
第一行:这些牛奶的中值。
Sample Input
5
2
4
1
3
5
Sample Output
3
Hint
输入:
五个奶牛提供1 2 3 4 5的牛奶
输出:
1 和 2 小于 3; 4 和 5 大于 3.
1.1.2 算法分析
思路
这是个求中值的问题,《算法导论》第九章中位数和顺序统计学专门讲解了如何在O(n)时间内求得n个元素中的第i小的元素。
利用快速排序的思路就可以将程序写出。
代码
2388.order.statistic.gykimo.cpp
下载: http://download.csdn.net/detail/gykimo/4853277
结果
728K 16MS
相比其他人,内存占得大了点。
总体,而言,这个题,主要对顺序统计算法的实现,难度不大。