CLRS 4.3用代入法求解递归式

4.3-1
猜测 c>0T(n)cn2

T(n)=T(n1)+nc(n1)2+n=cn2+(12c)n+c,选 c=1有:

T(n)n2n+1n2 for n1

4.3-2
猜测 T(n)clg(nd)

T(n)clg(n2d)+1clg(n2d+1)+1=clg(n2d+2)c+1clg(nd)

其中 c1,d2

4.3-3
上界证明书上有,在此省略。
下界证明:
猜测 T(n)c(n+2)lg(n+2)

T(n)2c(n/2+2)(lg(n/2+2)+n2c(n/21+2)(lg(n/21+2)+n=2cn+22lgn+22+n=c(n+2)lg(n+2)c(n+2)lg2+n=c(n+2)lg(n+2)+(1c)n2cc(n+2)lg(n+2)

其中 n2c/(1c),0<c<1
所以 T(n)=Θ(nlgn)

4.3-4
猜测 T(n)cnlgn+d,代入递推式可得

T(n)2cn2lgn2+2d+ncnlgn2+n+2d=cnlgn(c1)n+2dcnlgn+d

要让等式成立,就需要 d(c1)n0,显然要 c1,要保证 T(1)=1c1lg1+d=d,所以 d1,cd+1

4.3-5
递归式:T(n)=T(n/2)+T(n/2)+Θ(n)
证明上界和下界类似,在此就只证明下界。
猜测 T(n)c(n+d)lg(n+d)

T(n)c(n2+d)lg(n2+d)+c(n2+d)lg(n2+d)+dnc(n21+d)lg(n21+d)+c(n2+d)lg(n2+d)+dn2c(n21+d)lg(n21+d)+dn=c(n+d+d2)lg(n+2d2)c(2d2)+(dc)n

要使 c(n+d+d2)lg(n+2d2)c(2d2)+(dc)nc(n+d)lg(n+d),只需 d2,0<cd即可。

4.3-6
猜测 T(n)c(nd)lg(nd)

T(n)2c(n2+17d)lg(n2+17d)+n2c(n2+18d)lg(n2+18d)+n=2c(n2+18d)(lg(n+362d)1)+n=cnlg(n+362d)(c1)n2c(d18)lg(n+362d)2c(d18)

要使 cnlg(n+362d)(c1)n2c(d18)lg(n+362d)2c(d18)cnlg(nd)

则需要 36d0,c10,d180c1,d36

4.3-7
猜测 T(n)cnlog34

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

证明失败。
猜测 T(n)cnlog34dn
T(n)4c(n3)log3443dn+n=cnlog34dn(13d1)n

要使 cnlog34dn(13d1)ncnlog34dn
显然 13d10即可,所以有 c0,d3

4.3-8
猜测 T(n)cn2

T(n)4c(n/2)2+ncn2+n

证明失败。
猜测 T(n)cn2dn
T(n)4c(n2)24dn2+n=cn2dn(d1)ncn2dn

显然 c0,d1即可。

4.3-9
T(n)=3T(n)+lgn,令 m=lgn有:T(2m)=3T(2m/2)+m
p=2mS(p)=3S(p/2)+p
猜测 S(p)cplg3+dp

S(p)3(c(p/2)lg3+d(p/2))+pcplg3+(32d+1)pcplg3+dp

其中 d2
同理可证明 S(p)cplg3+dp(证明略)
S(p)T(n)=Θ(plg3)=Θ(lglg3n)


版权声明:本文为u012593447原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。