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