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