【发布时间】: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
如何找到以下代码的 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
复杂度为 O(N^2)。
详细的没有。的计算是:
T(N) = 1 + 2 + 3 + ...... + n = n(n+1)/2
所以 O(N^2)
【讨论】:
要计算程序中循环的复杂度,您可以检查程序中的数字循环声明,然后检查嵌套调用的深度。
在这段代码中,复杂度会增加一个循环,然后是另一个内循环,因此它会增加到 O(N^2)。
但是,外循环将是 n 顺序,内循环将是 i+1,因此顺序它将是 1+2+3...n,因此这将计算为 n*(n+1)/2,最终会导致 O(N^2)。
【讨论】: