您的位置:首页 > 其它

算法导论第三版习题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}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: