嵌套循环的时间复杂度取决于父循环i

时间:2017-10-26 11:13:48

标签: arrays algorithm nested-loops analysis

如何找到以下代码的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");
    }
  }
}

2 个答案:

答案 0 :(得分:2)

复杂度为O(N ^ 2)。

详细说明没有。计算是:

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

所以O(N ^ 2)

答案 1 :(得分:0)

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

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

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