loops - 如何从外循环 : 中找到依赖于 "i"的内循环的时间复杂度

标签 loops time-complexity big-o

如何找到依赖于 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我们使用求和规则,但在这种情况下会怎样?

最佳答案

内循环在开始时执行 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

内循环的总迭代次数是这些的总和:



或者

enter image description here

因此时间复杂度为 Θ(n4)。

关于loops - 如何从外循环 : 中找到依赖于 "i"的内循环的时间复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52613745/

相关文章:

java - 循环中的 Big-O 运行时

Javascript for循环,里面有计数器?

python - 使用前一行引用快速循环 Python 数据框

python - 使用 heapify 与 heappush 创建堆。哪个更快?

algorithm - 时间复杂度两个 O(n^2) 算法会花费相同的时间吗?

java - 嵌套 for 循环的时间复杂度,其中内循环取决于外循环

java - 了解大 O 符号 - 破解编码面试

python - 如何根据同一数据框中具有特定条件的另一记录更新一条记录的值

java - 使用 Scanner 循环

java - 如何解决恒定时间操作的循环瓶颈?