CLRS 4.3用代入法求解递归式

时间:2022-05-30 22:09:18

4.3-1
猜测 c>0 T(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=2m S(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)