Big o 嵌套for循环的时间复杂度?
这个问题是为了修改过去的试卷,只是想知道我是否做对了 我是新来的,所以我在回答更复杂的问题时有点困难。这是其中之一 如果有人能详细说明这一点,我将非常感激。。。 所以我必须找出这段代码的复杂性Big o 嵌套for循环的时间复杂度?,big-o,time-complexity,Big O,Time Complexity,这个问题是为了修改过去的试卷,只是想知道我是否做对了 我是新来的,所以我在回答更复杂的问题时有点困难。这是其中之一 如果有人能详细说明这一点,我将非常感激。。。 所以我必须找出这段代码的复杂性 cout = 0; for(int i=1 ; i<=n ; i*=3) for(int j=1 ; j<=i; j++) for(int k=1 ; k<=n ; k++) count++; cout=0; 对于(int i=1;i第二个循环的迭
cout = 0;
for(int i=1 ; i<=n ; i*=3)
for(int j=1 ; j<=i; j++)
for(int k=1 ; k<=n ; k++)
count++;
cout=0;
对于(int i=1;i第二个循环的迭代次数为
$$1+3+9+…+m$$
其中$m$约为$n$。这等于$\Theta(n)$。然后最里面的循环是θ(n)的另一个因子。因此$\Theta(n^2)$。确定算法时间复杂度的正式方式:
我本以为它是O(n^3)。当I=0时,复杂度是O(n^2),但当I=n时,复杂度是O(n^3)。我想k应该初始化为0。I
在上面使用的意义上不等于0
或n
,毕竟它是循环变量。是的……犯了一个错误……更正了:)谢谢