当前位置:   article > 正文

算法导论第三版习题4.4_算法导论课后习题4.4-6

算法导论课后习题4.4-6

4.4-1

画出递归树可知:递归树深度为log2nlog2n,第ii层共有3i3i个节点,每个节点的代价为(12)in(12)in,故第ii层总代价为(32)in(32)in
递归树叶子在第log2nlog2n层,则一共有3log2n3log2n片叶子,
设叶子代价为Θ(1)Θ(1),则叶子总代价为

Θ(3log2n)=Θ(nlog23)

则整棵树的代价为
T(n)=clog2n1i=0(32)in+Θ(nlog23)=cn(32)log2n1321+Θ(nlog23)=2cn(32)log2n2cn+Θ(nlog23)=2cnnlog2322cn+Θ(nlog23)=2cnlog232cn+Θ(nlog23)=Θ(nlog23)

故可猜测 T(n)=Θ(nlog23)
我们来证明 T(n)cnlog23+dn
T(n)3T(n/2)+n3c(n/2)log23+2d(n/2)+n3cnlog23+(d+1)n

则当 d=1 时, T(n)3cnlog23+dn
T(n)=O(nlog23)

4.4-2

画出递归树可以看出,递归树一共有log2n层,第i层有2i个节点,每个节点代价为[(12)in]2=(12)2in2,则每层代价为(12)in2
一共有2log2n=n个叶子,则叶子总代价为Θ(n)
则总代价为

T(n)=log2n1i=0(12)in2+Θ(n)n21112+Θ(n)=2n2+Θ(n)=Θ(n2)

则可猜测 T(n)=O(n2)
现证明 T(n)cn2
T(n)c(n2)2+n2=(c4+1)n2=O(n2)

4.4-3

个人认为题目有问题,结果并不收敛,应该没有上界

4.4-4

T(n)=O(n)

4.4-5

不会

4.4-6

将递归式最浅的叶子的层数乘以每层代价则为总代价的下限

T(n)nlog3n=Ω(nlgn)

4.4-7

画出递归树可知,递归树一共有log2n层,第i层一共有4i个节点,每个节点的代价为c(12)in,则每层代价为c2in
叶子总数为4log2n=n2,则叶子总代价为Θ(n2)
故总代价为

T(n)=cnlog2n1i=02i+Θ(n2)=cn2log2n121+Θ(n2)=cn(n1)+Θ(n2)=Θ(n2)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/243714?site
推荐阅读
相关标签
  

闽ICP备14008679号