4.3-1
猜测 ∃c>0有 T(n)≤cn2。
T(n)=T(n−1)+n≤c(n−1)2+n=cn2+(1−2c)n+c,选 c=1有:
T(n)≤n2−n+1≤n2 for n≥1
4.3-2
猜测 T(n)≤clg(n−d):
T(n)≤clg(⌈n2⌉−d)+1≤clg(n2−d+1)+1=clg(n−2d+2)−c+1≤clg(n−d)
其中 c≥1,d≥2。
4.3-3
上界证明书上有,在此省略。
下界证明:
猜测 T(n)≥c(n+2)lg(n+2):
T(n)≥2c(⌊n/2⌋+2)(lg(⌊n/2⌋+2)+n≥2c(n/2−1+2)(lg(n/2−1+2)+n=2cn+22lgn+22+n=c(n+2)lg(n+2)−c(n+2)lg2+n=c(n+2)lg(n+2)+(1−c)n−2c≥c(n+2)lg(n+2)
其中 n≥2c/(1−c),0<c<1
所以 T(n)=Θ(nlgn)
4.3-4
猜测 T(n)≤cnlgn+d,代入递推式可得
T(n)≤2c⌊n2⌋lg⌊n2⌋+2d+n≤cnlgn2+n+2d=cnlgn−(c−1)n+2d≤cnlgn+d
要让等式成立,就需要 d−(c−1)n≤0,显然要 c≥1,要保证 T(1)=1≤c⋅1⋅lg1+d=d,所以 d≥1,c≥d+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)+dn≥c(n2−1+d)lg(n2−1+d)+c(n2+d)lg(n2+d)+dn≥2c(n2−1+d)lg(n2−1+d)+dn=c(n+d+d−2)lg(n+2d−2)−c(2d−2)+(d−c)n
要使 c(n+d+d−2)lg(n+2d−2)−c(2d−2)+(d−c)n≥c(n+d)lg(n+d),只需 d≥2,0<c≤d即可。
4.3-6
猜测 T(n)≤c(n−d)lg(n−d)
T(n)≤2c(⌊n2⌋+17−d)lg(⌊n2⌋+17−d)+n≤2c(n2+18−d)lg(n2+18−d)+n=2c(n2+18−d)(lg(n+36−2d)−1)+n=cnlg(n+36−2d)−(c−1)n−2c(d−18)lg(n+36−2d)−2c(d−18)
要使 cnlg(n+36−2d)−(c−1)n−2c(d−18)lg(n+36−2d)−2c(d−18)≤cnlg(n−d)
则需要 36−d≤0,c−1≥0,d−18≥0⇒c≥1,d≥36
4.3-7
猜测 T(n)≤cnlog34
T(n)≤4c(n3)log34+n=cnlog34+n
证明失败。
猜测 T(n)≤cnlog34−dn
T(n)≤4c(n3)log34−43dn+n=cnlog34−dn−(13d−1)n
要使 cnlog34−dn−(13d−1)n≤cnlog34−dn
显然 13d−1≥0即可,所以有 c≥0,d≥3
4.3-8
猜测 T(n)≤cn2
T(n)≤4c(n/2)2+n≤cn2+n
证明失败。
猜测 T(n)≤cn2−dn
T(n)≤4c(n2)2−4dn2+n=cn2−dn−(d−1)n≤cn2−dn
显然 c≥0,d≥1即可。
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))+p≤cplg3+(32d+1)p≤cplg3+dp
其中 d≤−2。
同理可证明 S(p)≥cplg3+dp(证明略)
S(p)T(n)=Θ(plg3)=Θ(lglg3n)
版权声明:本文为u012593447原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。