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 + 2次,这是否会更改bigO或附加常数无关紧要的规则是否暗示?最后,如果最内层的循环迭代n + 2次而不是n次,它会改变什么吗?

谢谢!

最佳答案

外循环运行n + 2次,内循环运行n次,因此代码块运行(n + 2) * n次,即n * n + 2 * n次。随着n值的增加,2 * n变得无关紧要,因此您只剩下n * n,给出的答案是:O(n ^ 2)

10-07 19:27
查看更多