📜  查找时间复杂度的Akra-Bazzi方法

📅  最后修改于: 2021-05-20 08:33:57             🧑  作者: Mango

大师定理是解决以下形式的时间复杂性递归的一种流行方法:

约束a,b和f(n)。递归关系形式限制了Master定理的可用性。以下是三个不能用大师定理直接解决的递归:

  1. \large{T(n) = 3T(\frac{n}{5}) + 2T(\frac{n}{5}) + \theta(n)}
  2. \large{T(n) = \frac{1}{3}T(\frac{n}{3}) + \theta(\frac{1}{n})}
  3. \large{T(n) = 9T(\frac{n}{3}+\log n) + \theta(n)}

Akra-Bazzi方法本文探讨了另一种解决此类复发的方法,该方法由Mohammad AkraLouay Bazzi1998年开发。 Akra-Bazzi方法可以应用于以下形式的重复出现:

在哪里, a_{i}  b_{i}  是这样的常量:

接下来,找到p使得

然后

例子
让我们考虑上面讨论的三种重复,并使用方法解决它们:

范例1。

\large{T(n) = 3T(\frac{n}{5}) + 2T(\frac{n}{5}) + \theta(n)}

这里

在这个问题中,不存在h 1 (n)和h 2(n)。
这里p = 1满足

最后,

示例2

\large{T(n) = \frac{1}{3}T(\frac{n}{3}) + \theta(\frac{1}{n^{2}})}

这里

在这个问题中,不存在h(n)。
这里p = – 1满足

最后,

范例3。

\large{T(n) = 9T(\frac{n}{3}+\log n) + \theta(n)}

这里

这里p = 2满足

最后,

好处:

  • 适用于许多分而治之的算法。
  • 对递归格式的限制要比Master定理小。
  • 对于复杂的递归关系,可以使用数值方法来计算p。

缺点:

  • 当g(n)的增长不是有界多项式时不起作用。例如, g(N)= 2 N。
  • 不处理ceil和floor功能。

如果您希望与行业专家一起参加现场课程,请参阅《 Geeks现场课程》和《 Geeks现场课程美国》。