Loops 寻找嵌套循环的复杂性
我得到了循环伪代码:Loops 寻找嵌套循环的复杂性,loops,big-o,time-complexity,complexity-theory,discrete-mathematics,Loops,Big O,Time Complexity,Complexity Theory,Discrete Mathematics,我得到了循环伪代码: 其中“to”相当于“这似乎是一个棘手的问题,这些内部循环比n更复杂 外部循环为n。 下一个循环转到i^3。在外循环的末尾,i将等于n。这意味着在末尾的这个循环将位于n^3。从技术上讲,它将是(n^3)/2,但我们忽略了这一点,因为这是一个大O。 第三个循环转到j,但在前一个循环的末尾j将等于i^3。我们已经确定i^3等于n^3 所以它看起来像: 第一个循环:n 第二个循环:n^3 第三个循环:n^3 这看起来像是n^7。不过我想让其他人来验证这一点。一定要喜欢大O。你可
其中“to”相当于“这似乎是一个棘手的问题,这些内部循环比
n
更复杂
外部循环为n
。
下一个循环转到i^3
。在外循环的末尾,i将等于n
。这意味着在末尾的这个循环将位于n^3
。从技术上讲,它将是(n^3)/2
,但我们忽略了这一点,因为这是一个大O。
第三个循环转到j
,但在前一个循环的末尾j
将等于i^3
。我们已经确定i^3
等于n^3
所以它看起来像:
- 第一个循环:
n
- 第二个循环:
n^3
- 第三个循环:
n^3
这看起来像是
n^7
。不过我想让其他人来验证这一点。一定要喜欢大O。你可以使用Sigma符号来显式展开循环中的基本操作数(让sum++
成为一个基本操作):
在哪里
:(i)
:(ii)
因此,使用Big-O表示法的复杂性是
O(n^7)
Hmm,我将等待更多答案以获得完全确认,感谢您的回复。
sum = 0;
for i = 1 to n
for j = 1 to i^3
for k = 1 to j
sum++
1 <= 5 2<= 5
j = 1 <= 1^3 2 <= 2^3 = 8
k=1 <= 1 2 <= 2