【问题标题】:What is the time complexity of this nested loop?这个嵌套循环的时间复杂度是多少?
【发布时间】:2019-09-26 06:25:24
【问题描述】:

我偶然发现了一个循环,我不确定它的时间复杂度是多少。就是如下循环:

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

【问题讨论】:

    标签: time-complexity


    【解决方案1】:

    操作次数为:

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

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

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

    【讨论】:

      【解决方案2】:

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

      每个新的迭代都大 1。

      外循环将执行 n^2 次操作,结果如下:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-02
        • 2021-03-04
        • 2015-06-17
        • 2015-12-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多