用主定理求出递推方程的闭端公式

时间:2012-10-04 11:23:54

标签: algorithm recurrence asymptotic-complexity master-theorem

我们可以解决这个问题       T(n) = 2T( n/2 ) + n lg n 递归方程主定理我来自一个链接,他说我们不能在这里应用主定理,因为它不满足3ree案例中的任何一个条件。另一方面,他又举了另一个例子 T(n) = 27T(n/3) + Θ(n^3 lg n) 并找到已关闭的解决方案 theta(n^3logn) 为了解决此问题,他使用了第二个主定理 If f(n) = Θ(nlogba (lg n)k ) then T(n) ∈ Θ(nlogba (lg n)k+1) for some k >= 0 这里出现了我的困惑,为什么我们不能在这里应用第二种情况,而它完全适合第二种情况。 我的想法: a = 2,b = 2;那么k = 1   对于k = 1,f(n)= theta(n ^ log_2 2 logn)所以T(n)= theta(nlogn)但是如上所述,我们不能应用主定理我为什么不混淆。

注意:这是由于 T(n) = 2T( n/2 ) + n lg n f(n) = nlog n T(n) = 27T(n/3) + Θ(n^3 lg n) * 中的f(n)bcz f(n) = theta(n^3log n) *如果我在这里错了,请纠正我。

1 个答案:

答案 0 :(得分:2)

使用主定理的情况2我发现

 T(n) = Theta( n log^2 (n))

您的链接指出theroem的案例2是:

 f(n) = Theta( n log_b(a))

虽然来自其他几个链接,例如one from mit,但案例是:

 f(n) = Theta( n log_b(a) log_k(n)) for k >= 0