中位数与n分位数

本文介绍了《算法导论》中关于中位数和顺序统计量的内容,特别是如何在线性时间内找到n分位数。通过电梯调度问题,展示了中位数在解决实际问题中的应用,解释了为什么中位数是优化问题的最优解,并通过不同场景的脑洞大开讨论,深入理解中位数的重要性。
摘要由CSDN通过智能技术生成

第9章中位数和顺序统计量

其实《算法导论》第三版第9章,已经讲了不少有关中位数和顺序统计量的知识。

尤其是9.3的那个线性时间内确定中位数(其实可以拓展到任意一个n分位数)的算法,简直不要太屌。

额。我自认为我没可能讲的比《算法导论》还要好,而且,又不便直接复制粘贴。所以那部分东西我就不讲了,这篇博文就以中位数的拓展为主。


电梯调度

记得《编程之美》有一个电梯调度问题,大意就是每天,一堆人从1楼做电梯,然后每层楼都停,感觉很烦,如果能够在一个合适的地方停一下,然后,没到的人几个人向上走,停过了人向下走。。。然后对于一堆人的电梯在一层就已经确定的目标楼层数据,应该选择在哪一层停才能使,向上走的人走的总层数和向下走的人的总层数最小?

比如 有三个人 他们目标楼层分别是(3,5,9),那么如果你在第3层停,结果到第5层和第9层的就需要向上走,3-3 + 5-3 + 9-3 = 8层。代价是8层,

如果是在第5层停,那么向下走的话,结果是第3层的那个要向下走 5-3 + 5-5 + 9-5 = 6层。 代价6层,结果比原来的8层代价少,所以停在第5层更好。


分析:其实这道题目是算法导论9.3-9的特例。这个东西其实想一想就知道是中位数。。。我们求个中位数就妥了。。。注意比如(3,9,9)这些数据的中位数是9,不是3,也不是 (9 +3)/2 = 6,而是9。这是统计学的基本知识点,注意。(2,4,6,9)的中位数,我们考虑成(4+6)/2 = 5.

由于本题的东西是电梯,楼层有限,所以可以考虑用计数排序,特别简单,直接找中位数就可以了。


脑洞大开,一档

为何是中位数? 

这么一问,这个东西就蛋疼了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值