主法是获得解决方案的直接方法。主方法仅适用于以下类型的重复或可转换为后续类型的重复。
T(n)= a T(n / b)+ f(n)其中a≥1,b> 1。 1,f(n)=Θ(n c )。
以下三种情况:
如果c < log b (a)然后T(n)=Θ(n log b (a))。
如果c = log b (a)则T(n)=Θ(n c log(n))。
如果c> log b (a)然后T(n)=Θ(f(n))。
在主方法中,如果f(n)包含一些log(n)项,是否可以通过Master方法解决这个问题? 例如在 T(N)= 4T(N / 2)+ N ^ 2logn 这里主人的定理可以适用或不适用
答案 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)总是更快)。如果它似乎不适合你,你将不得不使用其他技术来解决复发问题。