算法导论 第9章 中位数和顺序统计量
2018-03-26 14:36
288 查看
算法导论 第9章 中位数和顺序统计量
在一个由n个元素组成的集合中,第i个 顺序统计量 是指该集合中第i小的元素,如最小值是第1个顺序统计量。中位数 是它所属集合的中点元素,本书中都指下中位数,即i=(n+1)/2向下取整。本章讨论 选择问题,即输出集合中第i小的元素。
最小值和最大值
若要确定一个n元素集合中的最小元素或最大元素,显然需要n-1次比较,即Θ(n)。若要同时找到最小值和最大值,可以首先记录已知的最小值和最大值,然后对输入元素成对的相互比较,把较小的与当前最小值比较,较大的与当前最大值比较,这样总的比较次数至多是3 * (n / 2向下取整)。
期望为线性时间的选择算法
该算法以第7章快速排序算法为模型,但只处理划分的一边。首先讲集合划分为A[p…q-1]和A[q+1…r],使得A[p…q-1]中元素都小于或等于A[q],A[q+1…r]中元素都大于或等于A[q],然后计算A[p…q]的元素个数k,确定第i小的元素在哪一个集合中,并递归调用该方法直到取得第i小的元素:其中:
可以证明,假设所有元素是互异的,在期望现性时间内,可以找到任一顺序统计量。
最坏情况为线性时间的选择算法
将输入的n个元素的数组划分n/5向下取整个组每组5个元素,和1组n mod 5个元素对每一组进行插入排序,确定每组的中位数
对找到了n/5向上取整个中位数,递归调用该方法以找到中位数x
利用修改过的PARTITION(把划分的主元也作为输入参数)按中位数的中位数x进行划分,让k比划分的低区的元素多1,因此x是第k小的元素
若i=k则返回x,若i
相关文章推荐
- 算法导论:第9章 中位数和顺序统计量_2最坏情况为线性时间的选择算法
- 算法导论:第9章 中位数和顺序统计量_1期望为线性时间的选择算法
- 算法导论 第9章 中位数和顺序统计量 C++实现
- 《算法导论》第9章 中位数和顺序统计量 个人笔记
- 《算法导论》读书笔记之第9章 中位数和顺序统计学
- 《算法导论》学习笔记之Chapter9中位数和顺序统计量
- 《算法导论》笔记系列之第九章中位数和顺序统计量
- 算法导论中位数和顺序统计量之最大值最小值C#实现
- 算法导论第9章 中位数和顺序统计学
- 最小值与最大值(第9章:中位数和顺序统计量)...2014.4.28
- 算法导论笔记:09中位数和顺序统计量
- 第9章 中位数和顺序统计量
- 《算法导论》读书笔记之第9章 中位数和顺序统计学 最坏情况是线性时间的选择算法
- 算法导论 第9章 中位数和顺序统计学(线性时间选择算法)
- 算法导论第九章-中位数和顺序统计量
- 算法导论—中位数与顺序统计量
- 中位数和顺序统计量(第9章)
- 算法导论-中位数和顺序统计量
- 算法导论-第九章-中位数和顺序统计量:最坏情况为线性时间的选择算法C++实现
- 第9章:中位数和顺序统计量