我學習大O符號,現在和在另一個線程跨越這個小算法跌跌撞撞:以下算法的時間複雜度?
i = n
while (i >= 1)
{
for j = 1 to i // NOTE: i instead of n here!
{
x = x + 1
}
i = i/2
}
根據該帖子的作者,複雜度爲Θ(N),但我不能弄清楚如何。我認爲while循環的複雜性是Θ(log(n))。 for循環的複雜度與我的想法一樣也是Θ(log(n)),因爲每次迭代的次數都會減半。所以,整個事情的複雜性是不是Θ(log(n)* log(n)),還是我做錯了什麼?
編輯:段是在這個問題的最佳答案:https://stackoverflow.com/questions/9556782/find-theta-notation-of-the-following-while-loop#=
你應該鏈接到你之前看到的問題。 –