i = n
while (i >= 1)
{
for j = 1 to i
{
Function() <- (O(1))
}
i = i/2
}
答えはTheta(n)ですが、なぜこれがTheta(n)なのかわかりません。シータ(n)以外の2つのループ?
内部ループはn + n/2 + n/4 + ... + 1を実行するので、合計はO(n)になり、外側ループはlogn時間に実行されます。 答えnlognでなければなりません。 なぜこれがTheta(nlogn)の代わりにTheta(n)ですか?私の理解から
[Big Oの計算は可能ですか?](http://stackoverflow.com/questions/3255/big-o-how-do-you-calculate-approximate-it) –