[算法学习] 中位数和顺序统计学
2012-11-18 22:01
197 查看
今天学习《算法导论》 chapter9,
查找数组中min:数组中元素个数为n,需要比较n-1次才能找出最小值。从比较次数来看,已经是最优的
同时找出min和max:最多需要3┌ n/2 ┐次比较
找到n个元素中的次小元素:最坏情况下,需要n+┌ lg n ┐-2次比较。需要有一个链表保存和最小值比较过的值。
找到n个元素中第i小的元素:
1、平均情况下,线性时间
利用了RANDOMIZED_PARTITION算法。类似于快排。对输入数字进行递归划分,但每次只处理划分的一边。
最坏情况下,时间复杂度是O(n2)。和快排类似
2、最坏情况线性时间的选择:SELECT算法
(1)如果n=1,则select直接返回该值
(2)将输入数组的n个元素划分为 n/5组,每组5个元素。且至多只有一个组由剩下的n mod 5个元素组成
(3)寻找每个组的中位数,首先对每个组中的元素进行插入排序,然后从排序过的序列中选出中位数
(4)对3步中找出的中位数,递归调用select以找出其中位数x(如果有偶数个中位数,根据约定,x是下中位数)
(5)如果i=k,则返回x。否则,如果i<k, 则在低区递归调用select以找出第i小的元素。如果i>k,则在高区中找地第(i-k)个最小元素。
查找数组中min:数组中元素个数为n,需要比较n-1次才能找出最小值。从比较次数来看,已经是最优的
同时找出min和max:最多需要3┌ n/2 ┐次比较
找到n个元素中的次小元素:最坏情况下,需要n+┌ lg n ┐-2次比较。需要有一个链表保存和最小值比较过的值。
找到n个元素中第i小的元素:
1、平均情况下,线性时间
利用了RANDOMIZED_PARTITION算法。类似于快排。对输入数字进行递归划分,但每次只处理划分的一边。
最坏情况下,时间复杂度是O(n2)。和快排类似
2、最坏情况线性时间的选择:SELECT算法
(1)如果n=1,则select直接返回该值
(2)将输入数组的n个元素划分为 n/5组,每组5个元素。且至多只有一个组由剩下的n mod 5个元素组成
(3)寻找每个组的中位数,首先对每个组中的元素进行插入排序,然后从排序过的序列中选出中位数
(4)对3步中找出的中位数,递归调用select以找出其中位数x(如果有偶数个中位数,根据约定,x是下中位数)
(5)如果i=k,则返回x。否则,如果i<k, 则在低区递归调用select以找出第i小的元素。如果i>k,则在高区中找地第(i-k)个最小元素。
相关文章推荐
- 算法导论学习笔记-第九章-中位数和顺序统计学
- 《算法导论》读书笔记之第9章 中位数和顺序统计学 最坏情况是线性时间的选择算法
- 第九章中位数和顺序统计学之“查找第i小的元素(递归版)平均运行时间为O(n)算法”
- 《算法导论》学习总结 — 9.第九章 中位数和顺序统计学
- 【算法导论 第9章 中位数和顺序统计学】
- 算法导论学习笔记-第9章 中位数和顺序统计学
- 算法导论学习笔记——第9章 中位数和顺序统计学
- 算法导论 第9章 中位数和顺序统计学(线性时间选择算法)
- 第九章中位数和顺序统计学之“查找第i小的元素(迭代版)平均运行时间为O(n)算法”(练习9.2-3)
- 第九章中位数和顺序统计学 之 “寻找第i小元素之最坏情况线性时间的选择 最坏运行时间就为O(n)算法”
- 《算法导论》学习总结 — 9.第九章 中位数和顺序统计学
- 算法导论 第9章 中位数和顺序统计学(线性时间选择算法)
- 算法导论——第六章——中位数和顺序统计学
- 【算法导论 第9章 中位数和顺序统计学】
- 算法学习之查找(顺序、二分法、排序二叉树以及 Hash 表)
- 每天学习一算法系列(16)(输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印)
- 《算法导论》读书笔记之第9章 中位数和顺序统计学
- 算法导论 学习笔记 第九章 中值和顺序统计
- 算法学习【9】判断是否为栈的弹出顺序
- 算法学习之顺序结构