算法导论第三版习题8.1
2016-03-02 10:25
525 查看
8.1-1
最小深度为n−1n-1,就像插入排序最好的情况一样,对已经排序好的序列排列的情况。8.1-2
∑k=1nlgk≤∑k=1nlgn=nlgn\begin{align}\sum_{k=1}^nlgk\le \sum_{k=1}^nlgn=nlgn
\end{align}
所以,lg(n!)=O(nlgn)lg(n!)=O(nlgn).
∑k=1nlgk=∑k=1n/2lgk+∑k=n/2+1nlgk≥∑k=n/2+1nlgk≥∑k=n/2+1nlg(n/2)=n2lgn2=n2lgn−n2lg2\begin{align}
\sum_{k=1}^nlgk&=\sum_{k=1}^{n/2}lgk+\sum_{k=n/2+1}^nlgk\\
&\ge\sum_{k=n/2+1}^nlgk\\
&\ge\sum_{k=n/2+1}^nlg(n/2)\\
&=\frac{n}{2}lg\frac{n}{2}\\
&=\frac{n}{2}lgn-\frac{n}{2}lg2
\end{align}
所以lg(n!)=Ω(nlgn)lg(n!)=\Omega(nlgn).
故lg(n!)=Θ(nlgn)lg(n!)=\Theta(nlgn).
8.1-3
对于给定的mm种输入,假设其树高为hh,则都有m≤2hm\le 2^h故都有h≥lgmh\ge lgm。当m=n!2m=\frac{n!}{2}时,h≥lgn!2=Ω(nlgn)h\ge lg\frac{n!}{2}=\Omega(nlgn)
当m=n!nm=\frac{n!}{n}时,h≥lgn!n=lg(n−1)!=Ω(nlgn)h\ge lg\frac{n!}{n}=lg(n-1)!=\Omega(nlgn)
当m=n!2nm=\frac{n!}{2^n}时,h≥lgn!2n=lg(n!)−nlg2h\ge lg\frac{n!}{2^n}=lg(n!)-nlg2
所以都不能再线性时间内达到。
8.1-4
一共有(k!)n/k(k!)^{n/k}种排列,和定理8.1的证明一样:(k!)n/k≤l≤2h(k!)^{n/k}\le l \le 2^h
则
h≥lg(k!)n/k=nklg(k!)≥nk⋅k2lgk2=Ω(nlgk)\begin{align}
h&\ge lg(k!)^{n/k}\\
&=\frac{n}{k}lg(k!)\\
&\ge \frac{n}{k}\cdot \frac{k}{2}lg\frac{k}{2}\\
&=\Omega(nlgk)
\end{align}
相关文章推荐
- 64.View the Exhibit and examine the data in the PROMO_CATEGORY and PROMO_COST columns of
- 反射调用性能比较
- 页面可视区域
- 0302随笔
- Python爬虫入门一之综述
- Android Studio module里面放switch语句报错 R文件找不到
- iOS多线程之GCD的基本使用
- onActivityResult无响应,调用startActivityForResult就马上调用onActivityResult函数
- 2016-03-03 名句诗
- SPRING IN ACTION 第4版笔记-第二章WIRING BEANS-007-以set方法注入<property>\p-namespace\util-space
- asp.net+js实现批量编码与解码的方法
- 【leetcode】【69】Sqrt(x)
- 八数码之A*解决方法
- git入门(4)-Git rebase
- C/C++从文件开头按行读取内容==并无需新建文件,获取前部分内容
- 63.View the Exhibit and examine the structure of the PRODUCTS table.
- Extjs ajax form 提交
- 2016年2月国内浏览器市场份额:Chrome突破40%
- git入门(3)-Git pull和git fetch从远程拉取分支到本地
- 学习LINUX决心书