算法导论 4.3-2

1 题目

某个算法A的运行时间由递归式T(n)=7T(n/2)+n2表示;另一个算法A'的运行时间为T'(n)=aT'(n/4)+n2。若要A'比A更快,那么a的最大整数值是多少?

2 分析与解答

T(n)的a=7,b=2,n2=O(nlg 7 - ε),所以T(n)=Θ(nlg 7);

T(n)和T'(n)的f(n)部分相同,T'(n)的nlogb a=nlog4 a=n1/2* lg a,根据主定理的三种情况分析:

  1. 1/2* lg a > 2,那么只有当1/2* lg a < lg 7时,T'比T快,得16<a<49;
  2. 1/2* lg a = 2的情况下,T'比T快,得a=16;
  3. 先看递归式是否满足规则性条件,af(n/4) = a(n/4)2 = a/16*n2,需要a/16 < 1,得 a<16;

由此可见,第一种情况下可以得到a的最大值,为48。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值