int y = 1;
for (int x = 1 ; x <= n+2 ; x++)
for (int w = n ; w > 0 ; w--)
y = y + 1;
我对确定上述代码的 BigO 有点困惑。如果在最外层循环中是 for(int x = 1; x <= n; w++),那么循环的 BigO 将为 O(n^2),因为最外层循环将迭代 n 次,最内层循环也会迭代迭代n次。
但是,考虑到最外层循环迭代 n+2 次,这会改变 bigO 还是意味着加性常数无关紧要的规则?最后,如果最内层循环迭代 n+2 次而不是 n 次,它会改变什么吗?
谢谢!
最佳答案
外循环运行 n + 2
次,内循环运行 n
次,因此代码块运行 (n + 2) * n
次,即 n * n + 2 * n
次。随着 n
值的增加,2 * n
变得微不足道,因此只剩下 n * n
,给出答案:<强>O(n^2)
关于java - 嵌套for循环的大O,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32998145/