如何用主定理求解这个递归方程T(n)=√2T(n / 2)+ log n?

时间:2016-01-22 17:44:57

标签: recurrence master-theorem

我知道可以用主法解决但是如何解决?请帮忙吗?

2 个答案:

答案 0 :(得分:0)

我不确定这是否正确:

a = sqrt(2) 
b = 2
f(n) = log n
log(b) a = log (2) sqrt(2) = 1/2

log n in O[n^(1/2)] 

所以找到数n的对数的运行时间是O {n ^(1/2)}(但是这里不能应用主定理)

解决方案在以下主题中:Solving master theorem with log n: T(n) = 2T(n/4) + log n

总的来说,我们看到你的复发是O(n1 / 2)和Ω(n1 / 2),通过更大和更小的复发来重复上下限。因此,即使主定理不适用于此,您仍然可以使用主定理声明运行时将为Θ(n1 / 2)。

Master's theorem with f(n)=log n

通常,f(n)必须是多项式才能应用主定理 - 它不适用于所有函数。然而,主定理有一个有限的“第四种情况”,它允许它应用于多对数函数。

https://en.wikipedia.org/wiki/Master_theorem

https://en.wikipedia.org/wiki/Big_O_notation

答案 1 :(得分:0)

拉尔夫告诉你不能apply masters theorem,这是不正确的。 enter image description here

这里唯一的限制是a >=1b >= 1,a,b可以是无理的,f(n)可以是任何东西。

Log2(sqrt(2)) is 1/2,它将您置于第一种情况,您的解决方案为O(n^0.5)