CLRS 4.5用主方法求解递归式

本文详细解析了不同场景下递归算法的时间复杂度分析方法,利用主定理对各种情形进行了评估,并给出了具体例子来说明如何确定递归算法的运行时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

4.5-1
a) a=2,b=4,f(n)=1。 又 nlogba=nlog42=n。由于 f(n)=O(nlog42ε),其中 ε=1/2。应用主定理 1 得:T(n)=Θ(n)

b) a=2,b=4,f(n)=n。又 nlogba=nlog42=n。由于 f(n)=Θ(nlog42)。应用主定理 2 得:T(n)=Θ(nlgn)

c) a=2,b=4,f(n)=n。又 nlogba=nlog42=n。由于 f(n)=Ω(nlog42+ε),其中 ε=1/2。且存在 1/2c1,af(n/b)=2f(n/4)=n2cn,应用主定理 3 得:T(n)=Θ(n)

d) a=2,b=4,f(n)=n2。又 nlogba=nlog42=n。由于 f(n)=Ω(nlog42+ε),其中 ε=3/2。且存在 1/8c1,af(n/b)=2f(n/4)=n28cn,应用主定理 3 得:T(n)=Θ(n2)

4.5-2
nlogba=nlog4a,f(n)=n2
1) 若 a<16,应用主定理 3 有 T(n)=Θ(n2)。快于 Strassen 算法。
2)若 a=16,应用主定理 2 有 T(n)=Θ(n2lgn),快于 Strassen 算法。
3)若 a>16log4a<lg7a<lg72=49。此时快于 Strassen 算法。
综上,a 最大为 48。

4.5-3
a=1,b=2,f(n)=1,nlogba=nlog21=1,应用主定理 2 得到 T(n)=lgn

4.5-4
a=4,b=2,f(n)=n2lgn,nlogba=nlog24=n2。由于 f(n)=n2lgnO(n2ϵ)Ω(n2+ϵ),因此不可以应用主定理。
应用递归树有:

T(n)=i=0lgn1n2(lgni)+Θ(n2)=O(n2lg2n)

4.5-5
设有 a=1,b=2,f(n)=n(2cosn),nlogba=1
设存在 c<1 使得 af(n/b)cnf(n/2)=n2(2cosn2)cn(2cosn),可以有:

n2(2cosn2)<cn1cos(n/2)2<cc1cos(n/2)2

由于 mincos(n/2)=1,也就是说 c3/2。又由于假设 c<1,从而矛盾。

注:4.6节带有星号,题目答案省略。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值