在测验中得到这个:T(n)= 4T(sqrt(n))+ 5
我使用替换简化它并得到F(k)= 4F(k / 2)+ 5
使用主定理我猜测它是O(logn)。这准确吗?
答案 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)
是的,你的回答似乎是正确的。