复杂性 - bigtheta 3 for cycle

时间:2014-06-02 13:51:04

标签: for-loop big-o complexity-theory asymptotic-complexity code-complexity

我只是解决了一个问题,但我没有解决方案,所以我很恳请您确认我的解决方案是否正确

int h=1; int cont = 0;

for (j = 2^N; j>1; j = j/2) {
        h = h * 2;
        for (i =1; i < j; i = i*2)
           for (k=2; k<h; k++)
               cont ++;
}

我必须在BIGTHETA中找到该部分代码的复杂性。

所以,我分析第三个周期以这种方式成长

k - &gt;线性直到= h(h长大如2 ^ w) - 所以复杂性是log n。

关于第二个,第一个周期&#39; limit是0所以我认为复杂性是log n。

关于前2 ^ N = 2 ^ N-1因此复杂度为n

总复杂度为n * log n

1 个答案:

答案 0 :(得分:1)

您可以使用Sigma表示法一步一步地正式着手(我跳过了一些步骤,但如果有必要,可以随时询问更多详细信息):

enter image description here