繁体   English   中英

具有因变量和对数增量的嵌套循环的时间复杂度

[英]Time complexity of Nested loop with dependent variable and logarithmic increment

这个循环的时间复杂度是多少, O(N)O(N (logN ))

你也可以解释一下你是如何推断的

for (int i = 1; i <= n;  i *= 2) {   
    for (int j = 0; j < i; j++) {
        // Statement(s) that take(s) constant time
   }
}

我有一个解释,但感觉不对

education.io 上的解释

我认为您因为语句O(n + log(n))感到困惑,因为您认为外循环运行logN次而内循环运行N次,所以答案应该是O(NlogN) 你在这里错了,因为内循环没有运行N次,它只按照解释运行了i次。 现在,当您在外循环上对所有i求和时,您将得到2*2^k - 1语句。 这将是解释中给出的N阶。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM