算法导论 学习笔记 第九章 中值和顺序统计
来源:互联网 发布:ubuntu mysql 数据库 编辑:程序博客网 时间:2024/06/07 14:05
本章其实只讲了一个问题,那就是如何从一个数组当中用线性时间内找出第i个小的元素。
最小值和最大值
这个就比较简单了,直接挨个比,运行时间就是线性的,而且这就是最好的办法。
如何同时找出最小值和最大值咧?
这个其实也简单,那就记录两个数据呗。运行时间是找单个的两倍。但是这个就不是最好的办法了。有一个比这个更好的方法。上面的办法是每一个元素需要比较两次,而下面的方法是每两个元素需要比较三次。比上一个好一点那就是我们不去一个一个比较,而是一对一对的比较,然后把小的跟最小值比较,大的跟最大值比较。厉害吧。
期望线性时间内的选择问题(这个翻译总感觉不通顺)平均情况嘛
就是我们平时的选择,不可能总是要求我们找出最小值和最大值。但是尽管不是找出最小值和最大值,平均情况下我们依然可以在线性时间内完成。
用的核心思想是分治法。最坏的情况下运行时间是
上伪代码
RANDOMIZED-SELECT(A,p,r,i)
if p = r then return A[p]q ← RANDOMIZED-PARTITION(A,p,r)k ← q - p + 1if i = k then return A[q]elseif i < k then return RANDOMIZED-SELECT(A,p,q-1,i)else return RANDOMIZED-SELECT(A,q+1,r,i-k)
最坏的情况下以线性时间运行
上面的算法在最坏的情况下的运行时间是
然后出现一边没有元素,一边n-1个元素的情况。这里就是用一种方法来保证不会出现这种情况。怎么来了咧
看书吧。。。。
阅读全文
0 0
- 算法导论 学习笔记 第九章 中值和顺序统计
- [算法导论]第九章《中位数和顺序统计量》
- 算法导论第九章-中位数和顺序统计量
- 算法导论 第九章 中位数和顺序统计量
- 《算法导论》笔记系列之第九章中位数和顺序统计量
- 【算法导论】第六课 顺序统计,中值
- 中位数和顺序统计量---算法导论学习笔记
- 算法导论学习笔记-第九章-中位数和顺序统计学
- 算法导论 第九章:顺序统计量(Order Statistic)
- 算法导论第九章-中位数和顺序统计量-Cpp代码实现
- 算法导论_第九章_中位数和顺序统计量
- MIT算法导论6(顺序统计、中值)
- 算法导论-第九章-中位数和顺序统计量:最坏情况为线性时间的选择算法C++实现
- 《算法导论》学习笔记之Chapter9中位数和顺序统计量
- 算法导论笔记:09中位数和顺序统计量
- 算法导论读书笔记 第九章 中位数和顺序统计学
- 算法导论第九章:中位数和顺序统计学
- 算法导论第九章中位数和顺序统计学例题
- hdu 5728 (公式推导+指数循环节)
- Piggy-Bank(完全背包)
- C
- 扩展欧几里得与逆元
- Red Hat Linux VNC安装及配置教程
- 算法导论 学习笔记 第九章 中值和顺序统计
- ORM概念
- xcode 项目 was compiled with optimization -stepping may behave oddly ;variable may not be available
- HTTP和tcp,udp,ip等网络协议学习
- 【跟着stackoverflow学Pandas】Delete column from pandas DataFrame-删除列
- hdu6064 Best theorem+Matrix-Tree定理
- 分页功能的实现
- hadoop2.6分布式环境搭建
- Java实现office文档与pdf文档的在线预览功能