北大ACM2388 - Who's in the Middle(顺序统计学)

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

相比其他人,内存占得大了点。

 

总体,而言,这个题,主要对顺序统计算法的实现,难度不大。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值