这个嵌套循环的时间复杂度是多少?

时间:2019-09-26 06:25:24

标签: time-complexity

我偶然发现了一个不确定时间的循环。这是以下循环:

for(i = 1; i <= n^2; i++){
   for(j = 1; j <= i; j++) {
      //some elementary operation
   }
}

我会争辩说,外部for循环在n ^ 2中运行,内部for循环也将在n ^ 2中运行,因为对于外部循环的每次迭代,我们都执行n ^ 2-(n ^ 2- 1),n ^ 2-(n ^ 2-2),...,n ^ 2。我在这里完全走错了方向吗?

所以时间复杂度为n ^ 4

2 个答案:

答案 0 :(得分:0)

这是一个简单的算术级数。

每个新的迭代都增加1。

外循环将执行n ^ 2个操作,这将导致以下顺序:

1 + 2 + 3 + ... + n + ... + n^2 = n^2 (n^2+1) / 2 = O(n^4)

答案 1 :(得分:0)

操作次数为:

1 + 2 + 3 + 4 + 5 + ... + n²

等于(n²*(n²-1))/2。

Big O表示法是O(n ^ 4)。你是对的。