递归关系的运行时间

时间:2013-03-14 17:59:22

标签: algorithm complexity-theory relation recurrence master-theorem

在测验中得到这个:T(n)= 4T(sqrt(n))+ 5

我使用替换简化它并得到F(k)= 4F(k / 2)+ 5

使用主定理我猜测它是O(logn)。这准确吗?

1 个答案:

答案 0 :(得分:2)

定义

F(n) = T(2^n)

然后我们有了

F(n) = 4F(n/2) + 5

根据主定理,我们有

a = 4
b = 2
f(n) = 5 = O(1) = O(m^0), so c = 0
0 < 2 = log_2(4)

所以我们在主定理的情况下是1。根据案例1,我们有

F(n) = Theta(n^2)

所以

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

因此

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

是的,你的回答似乎是正确的。