第i个顺序统计量 ( o r d e r s t a t i s t i c ) (order\ statistic) (order statistic)是n元素集合中最小 的元素。最小元素的顺序统计量是1,最大是n。
中位数(median)是所属集合的中点元素。
当n为奇数时,中位数唯一,位于 i = ( n − 1 ) / 2 i=(n-1)/2 i=(n−1)/2处,当n为偶数时,存在两个中位数。分别在 n / 2 n/2 n/2和 n / 2 + 1 n/2+1 n/2+1的位置。如果不考虑数的奇偶性,最小的中位数出现在 ⌊ ( n + 1 ) / 2 ⌋ \lfloor(n+1)/2 \rfloor ⌊(n+1)/2⌋,最大的在(you know who)
- 这一章讨论的集合中元素都是互异的,但实际上可以推广到一般情况。
我们可以在 O ( n l g n ) O(nlgn) O(nlgn)时间内解决这个问题,因为我们可以用堆排序或归并排序对输入数据进行排序。
最小值和最大值
-
为了确定一组n个元素的数据中哪个值最小。我们看可以简单地给出n-1次比较这个上界
-
尽管很简单,但这种方法确实是最优的
-
同时得到最小值和最大值的需要最多 3 ⌊ n / 2 ⌋ 3\lfloor n/2 \rfloor 3⌊n/2⌋,操作方法为每次输入一对元素,两个比较,小的跟最小的比,大的跟最大的比
-
如果元素个数为奇数将最大最小值设置为第一个元素所在的值,如果为偶数,则直接开始第一对的比较。
期望为线性时间的选择算法
类似于快速排序的分治算法,区别在于:快速排序的期望运行时间是 θ ( n l g n ) \theta(nlgn) θ(nlgn),而 R A N D O M S I Z E D − S E L E C T RANDOMSIZED-SELECT RANDOMSIZED−SELECT的期望时间为 θ ( n ) \theta(n) θ(n)
- 不允许递归调用含有0个元素的子数组
、、、、、、、、、、、、
好久没更新,主要是写好了懒得上传,csdn这破机制,图片插入贼麻烦,而且我自己记笔记的习惯也懒得分开提交,其实下一章整个都完事了,
这咋提交啊。