【问题标题】:Time complexity of nested loop depends on parent loops i [duplicate]嵌套循环的时间复杂度取决于父循环 i [重复]
【发布时间】:2018-04-07 17:56:40
【问题描述】:

如何找到以下代码的 T(n)。我需要分析。

void abc(int n) {
  for(int i = 0; i<n; i++){
    for(int j = 0; j<i; j++){
        System.out.println("Hello World");
    }
  }
}

【问题讨论】:

    标签: arrays algorithm nested-loops analysis


    【解决方案1】:

    复杂度为 O(N^2)。

    详细的没有。的计算是:

    T(N) = 1 + 2 + 3 + ...... + n = n(n+1)/2

    所以 O(N^2)

    【讨论】:

    • 它将是 n(n-1)/2
    • @KhalidHabib 不,只会是 n+1。
    【解决方案2】:

    要计算程序中循环的复杂度,您可以检查程序中的数字循环声明,然后检查嵌套调用的深度。

    在这段代码中,复杂度会增加一个循环,然后是另一个内循环,因此它会增加到 O(N^2)。

    但是,外循环将是 n 顺序,内循环将是 i+1,因此顺序它将是 1+2+3...n,因此这将计算为 n*(n+1)/2,最终会导致 O(N^2)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-17
      • 1970-01-01
      • 2017-02-27
      • 2019-05-18
      相关资源
      最近更新 更多