我如何从外部循环中找到依赖于“ i”的内部循环的时间复杂度:
int sum = 0;
for(int i = 0; i < n * n; i++) {
for(int j = n - 1; j >= n - 1 - i; j--) {
sum = i + j;
System.out.println(sum);
}
}
我很难解决这个问题的时间复杂度。我知道如果有“ i”,我们将使用求和规则,但是在这种情况下,情况将如何?
答案 0 :(得分:0)
内部循环从一开始执行1次迭代,到最后增加n*n
个迭代。
i iterations of inner loop
- ------------------------
0 1
1 2
2 3
...
n*n-2 n*n-1
n*n-1 n*n
内部循环的总迭代次数是这些总和:
或
因此时间复杂度为Θ( n 4 )。
答案 1 :(得分:0)