如果f(n)包含一些log(n)项,是否可以通过Master方法解决这个问题?

时间:2014-02-13 21:42:55

标签: algorithm master-theorem

主法是获得解决方案的直接方法。主方法仅适用于以下类型的重复或可转换为后续类型的重复。

T(n)= a T(n / b)+ f(n)其中a≥1,b> 1。 1,f(n)=Θ(n c )。

以下三种情况:

  1. 如果c < log b (a)然后T(n)=Θ(n log b (a))。

  2. 如果c = log b (a)则T(n)=Θ(n c log(n))。

  3. 如果c> log b (a)然后T(n)=Θ(f(n))。

  4. 在主方法中,如果f(n)包含一些log(n)项,是否可以通过Master方法解决这个问题? 例如在 T(N)= 4T(N / 2)+ N ^ 2logn 这里主人的定理可以适用或不适用

1 个答案:

答案 0 :(得分:1)

无法直接判断主方法是否适用于某些对数函数。这取决于您尝试解决的具体重现。这一切都取决于与n log b a 相比f的增长方式。

在JPC给出的例子中(其中T(n)= 4T(n / 2)+ log(n)),确实是可能的。但是,也要考虑示例T(n)= 2T(n / 5)+ log(n)。在这种复发中,更难确定n log 5 2 是否比log(n)增长得更快。如果对数函数f(n)变得更复杂(例如log 3 (n / 2)),则变得更加困难。

简而言之,当指数小于1时,指数函数与指数函数相比,可能很难确定对数函数的增长方式(对于指数&gt; = 1,log(n)总是更快)。如果它似乎不适合你,你将不得不使用其他技术来解决复发问题。