这种复发有多少子问题,但仍然比初始复发快?

时间:2013-09-17 11:16:35

标签: algorithm math big-o asymptotic-complexity recurrence

我在渐近分析问题上遇到了一些麻烦: 我的问题是如果在我的问题中陈述'a',则计算最大值:

An Algorith A has running time T(n)= 7T(n/2) + n^2
and Algorith B has running time T' = aT'(n/4) + n^2.
What will be the maximum integer value of 'a' such that algorith B runs 
asymptotically faster than A.

我应该如何找到'a'的值,如果我只使用算法概念,或者是他们以任何其他方式找出或解决任何问题。

2 个答案:

答案 0 :(得分:2)

这是使用大师定理的好地方。

在第一次复发中,T(n)= 7T(n / 2)+ n 2 ,主定理说,

  • a = 7
  • b = 2
  • d = 2

由于log b a = log 2 7大于d = 2,因此递推求解为T(n)=Θ(n log 2 7 )。

现在,让我们看看T'(n)。在这里,我们有一个未知的,b = 4,并且d = 2.如果我们满足以下条件:

  • log 4 a> 2,和
  • log 4 a< log 2 7

然后主定理说T'(n)=Θ(n log 4 a )= o(n log 2 7 )我们完成了。所以我们需要解决一个。

这样做

  

log 4 a< log 2 7

     

log 2 a / log 2 4< log 2 7(使用日志基础公式的更改)

     

log 2 a / 2< log 2 7

     

log 2 a< 2 log 2 7

     

log 2 a< log 2 7 2 (使用日志的电源规则)

     

log 2 a< log 2 49

     

a< 49

因此,您可以选择的最大积分是48。

希望这有帮助!

答案 1 :(得分:0)

求解方程以获得非递归运行时公式