算法导论第三版习题4.3

4.3-1

假设对 mn0,c0, 使得:

T(m)cm2

则有:
T(n1)c(n1)2

带入迭代式可得:
T(n)c(n1)2+n=cn22cn+c+n

现在我们令 2cn+c+n0 ,可得:
cn2n+1

故对于 n>0 , 可令 c=1 ,使得
T(n)cn22cn+c+nn2=cn2

T(n)=O(n2)

4.3-2

假设对于 m<n,c>0 ,使得:

T(n)clg(n)

则可以假设,对于 m<n,c>0 ,使得
T(n/2)clg(n/2)

带入迭代式可得:
T(n)clg(n/2)+1

n2 时, 1n/223n ,故有:
T(n)clg23n+1=clgn+clg23+1

则当 c1lg23 时, T(n)clgn.

T(n)=O(lgn)

4.3-3

假设对于 m<n,c>0,使T(m)cmlgm
则有:

T(n/2)cn/2lgn/2

带入迭代式可得:
T(n)2cn/2lgn/2+n2cn3lgn3+n=23cnlgn23cnlg3+n 

则对 0<c<32lg3 ,
T(n)23cnlgn

T(n)=Ω(nlgn)
T(n)=Θ(nlgn)

4.3-4

将假设换为 T(n)cnlgn+d,d0 即可

4.3-5

T(n)=

{Θ(1),T(n/2)+T(n/2)+Θ(n),n=1n>1

现在需证 m<n,c1,c2>0 ,使得:
c2mlgmT(m)c1mlgn

带入迭代式可得:
T(n)c1n/2lgn/2+c1n/2lgn/2+Θ(n)c123nlg23n+c123nlg23n+Θ(n)=c143nlg23n+Θ(n)=43c1nlgn+c143nlg23+Θ(n)=43c1nlgn

T(n)c2n/2lgn/2+c2n/2lgn/2+Θ(n)c213nlg13n+c213nlg13n+Θ(n)=c223nlg13n+Θ(n)=23c2nlgnc223nlg3+Θ(n)=23c2nlgn

T(n)=O(n),T(n)=Ω(n)
T(n)=Θ(n)

4.3-6

假设 m<n,c>0 ,使得 T(m)cmlgm

T(n/2)c(n/2+17)lg(n/2+17)


T(n)2c(n/2+17)lg(n/2+17)+n2c(n/2+17)lg(n/2+17)+n

n102
n/2+1723n


T(n)2c23nlg23n+n=43cnlg(n)+43cnlg23+n

则当 c10
T(n)43cnlgn

4.3-7

T(n)cnlog34 代入可得:

T(n)4c(n3)log34+n

无法得到 T(n)cnlog34

m<n,c>0 ,使得

T(m)cmlog34dm

T(n/3)c(n3)log34dn3
代入迭代式可得
T(m)4c(n3)log3443dn+n4cnlog34)34dn+n=4cnlog34(43d1)n

则当 d>3 T(n)4cnlog34dn
由于 log34>1 ,故 T(n)=Θ(nlog34)

4.3-8

同上可证

4.3-9

m=logn ,则 n=2m
代入原递归式中:

T(2m)=3T(2m/2)+m

S(m)=T(2m) ,则原式转化为
S(m)=3S(m/2)+m(1)

现假设 S(m)=Θ(mlgm) ,不妨设 m<n,c1,c2>0 ,使得
c2mlgmS(m)c1mlgm

c2m2lgm2S(m2)c1m2lgm2
代入 (1) 式中,有
32c2mlgm32c2mlg2+n32c2mlgm2+mS(m)32c1mlgm2+m32c1mlgm32c1mlg2+m

则当 c123log2,c223lg2 时,
32c2mlgmS(m)32c1mlgm

S(m)=Θ(mlgm)
m=logn,S(m)=T(2m) 代入上式:
T(n)=T(2m)=Θ(lognloglogn)

  • 7
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值