2个对数的Theta运行时嵌套for循环

时间:2012-06-03 10:37:32

标签: c++ runtime big-theta

Theta运行时具有以下代码?

void f(int n)
{
  for(int i=1; i<n; i*=5)
    for(int j=n; j>0; j/=2);
}

我想出了这个:T(n)= log(n)*(1 + log(n))= log(n)+ log ^ 2(n)现在我不知道该放入什么Theta符号?

1 个答案:

答案 0 :(得分:2)

log(n)+ log ^ 2(n)= Theta(log ^ 2(n))。你只需要占据主导地位。要看到这一点,你可以写

log^2(n) <= log(n) + log^2(n) <= 2*log^2(n)

这足以证明T(n)是Theta(log ^ 2(n))。