【问题标题】:complexity - bigtheta 3 for cycle复杂性 - bigtheta 3 循环
【发布时间】:2014-06-02 13:51:03
【问题描述】:

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

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 -> 线性直到 = h(h 像 2^w 一样增长) - 所以复杂度是 log n。

关于第二个,第一个周期的限制是 0,所以我认为复杂度是 log n。

关于前 2^N = 2^N-1 所以复杂度是 n

总复杂度为 n * log n

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 您能更好地解释一下该解决方案的步骤吗?最终的解决方案不是 2^N * N^2 吗?你为什么做所有循环的产品? 1 和 2 是双向的,所以我必须发现其中的最大值不正确?
    • @user ,没有规则说“从属”循环的复杂度最大为每个循环。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-12
    • 2018-12-20
    • 2013-12-19
    • 1970-01-01
    相关资源
    最近更新 更多