大师定理是解决以下形式的时间复杂性递归的一种流行方法:
约束a,b和f(n)。递归关系形式限制了Master定理的可用性。以下是三个不能用大师定理直接解决的递归:
Akra-Bazzi方法:本文探讨了另一种解决此类复发的方法,该方法由Mohammad Akra和Louay Bazzi于1998年开发。 Akra-Bazzi方法可以应用于以下形式的重复出现:
在哪里, 和是这样的常量:
接下来,找到p使得
然后
例子
让我们考虑上面讨论的三种重复,并使用方法解决它们:
范例1。
这里
- a1 = 3
- b1 =
- a2 = 2
- b2 =
- b1 and b2 are in the range (0, 1)
- g(n) = \theta(n) which is O(nc), here c can be 1.
在这个问题中,不存在h 1 (n)和h 2(n)。
这里p = 1满足
最后,
=>
=>
=>
=>
示例2
这里
- a =
- b =
- g(n) =
- b is in the range (0, 1)
- g(n) = \theta(n^2) which is in O(nc), here c can be 1.
在这个问题中,不存在h(n)。
这里p = – 1满足
最后,
=>
=>
=>
=>
=>
范例3。
这里
- a = 9
- b =
- g(n) = \theta(n)
- b is in the range(0, 1)
- g(n) = which is O(nc), here c can be 1.
- h(n) = which is
这里p = 2满足
最后,
=>
=>
=>
=>
=>
=> \theta(n^{2})
好处:
- 适用于许多分而治之的算法。
- 对递归格式的限制要比Master定理小。
- 对于复杂的递归关系,可以使用数值方法来计算p。
缺点:
- 当g(n)的增长不是有界多项式时不起作用。例如, g(N)= 2 N。
- 不处理ceil和floor功能。
如果您希望与行业专家一起参加现场课程,请参阅《 Geeks现场课程》和《 Geeks现场课程美国》。