算法导论第三版习题7.3
2016-02-29 14:44
204 查看
7.3-1
本来将快速排序随机化就是为了让其最坏情况的出现随机化,此时我们关心的就是该算法的期望运行时间。7.3-2
在最坏的情况下,每次RANDOM取得的都是子数组中最大或最小的元素的下标,每次划分都会出现0和n−10和n-1的两个子数组,所以每层节点都只会调用一次RANDOM,所以T(n)=T(n−1)+Θ(1)=Θ(n)T(n)=T(n-1)+\Theta(1)=\Theta(n)在最好的情况下,每次RANDOM取得的都刚好是子数组中大小居中的元素的下标,每次划分都会出现⌊n/2⌋\lfloor n/2\rfloor和⌊n/2⌋−1\lfloor n/2 \rfloor - 1两个子数组,所以T(n)=2T(n/2)+Θ(1)=Θ(n)T(n)=2T(n/2)+\Theta(1)=\Theta(n)
相关文章推荐
- sublime 使用技巧
- 微服务
- win7下IE11开发者工具无法使用
- FFmpeg源代码简单分析——sws_getContext()
- Android应用中内嵌SQLite数据库的基本操作指南
- date使用
- 最短路径问题Shortest-Paths Problem
- Python爬虫开发(一):零基础入门
- chrome笔记
- .gitignore 无法忽略已提交的目录或文件
- 聊天中“@”人功能的简易实现
- Group Policy Object Editor
- GMT时间
- 斐波那契查找法
- 作业一:博客和Github简单练习
- ITOO-js中比较时间大小以及在字符串中取出数字
- 仿余额宝折线图
- 【规范】J2EE的13规范小结
- Android string %1$s %1$d
- 2.2 BeanFactory和ApplicationContext