我们可以解决这个问题
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)
*如果我在这里错了,请纠正我。
答案 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