当前位置: 首页 > 知识库问答 >
问题:

嵌套for循环的大O

曾高杰
2023-03-14
int y = 1;
for (int x = 1 ; x <= n+2 ; x++)
  for (int w = n ; w > 0 ; w--)
    y = y + 1;

我对确定上述代码的BigO有点困惑。如果在最外层的循环中,则为(int x=1;x

然而,考虑到最外层循环迭代n 2次,这会改变bigO还是加法常数无关紧要的规则?最后,如果最内层循环迭代n 2次而不是n,会改变什么吗?

非常感谢。

共有3个答案

胡锋
2023-03-14

n和n2是相同的数量级,所以这个代码在O(n^2)中运行。即使内部循环运行n 2次。

锺离马鲁
2023-03-14

长话短说,加法常数并不重要。

假设我们确实计算了常数。然后,执行内部循环

(n+2)(n) = n^2 + 2n

时报。这仍然是O(n^2),因为平方项优先于线性项。

田鸿彩
2023-03-14

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

 类似资料:
  • 和其他编程语言一样, Java 允许循环嵌套。如果把一个循环放在另一个循环体内,那么就可以形成嵌套循环。 嵌套循环既可以是 for循环嵌套 while 循环,也可以是 while 循环嵌套 do-while 循环 …… 即各种类型的循环都可以作为外层循环,也可以作为内层循环。 当程序遇到嵌套循环时,如果外层循环的循环条件允许,则开始执行外层循环的循环体,而内层循环将被外层循环的循环体来执行——只是

  • 我有一个嵌套的for循环,但是它会减慢一点处理速度,我如何才能使嵌套循环高效。我需要的是对于外循环的每个值,内循环继续其所有迭代。但是,我不认为它会像两个嵌套循环那样影响计算。我的第二个问题是,循环会影响速度还是会支持我的现象? 我的代码:

  • 对Java来说很新鲜,我在大学的一个入门班做一个项目。我正在尝试做一个方法,在String数组中搜索输入的状态并返回索引。如果用户输入不在数组中的查询,我希望它要求一个新的状态来搜索。我的例外是说“变量statePotion可能尚未初始化。”下面是代码。 提前谢谢!

  • 问题内容: 另一个Big O符号问题…以下代码的Big O是什么: 我的想法:所以分解一下,我认为外部循环是,那么每个内部循环是什么,这将导致 问题1是否正确? 问题2:在组合嵌套循环时,它总是和每个循环的Big O一样简单吗? 问题答案: 当循环计数器不相互依赖时,总是可以从内部向外进行工作。 最里面的循环始终花费时间O(n),因为无论j和i的值是多少,它都会循环n次。 当第二个循环运行时,它将

  • 问题内容: 我不知道这是否是一个愚蠢的问题,但是我需要在不使用递归的情况下动态更改for循环的数量。 例如,如果n = 3,则需要3个嵌套的for循环。 如果n = 5: 有没有什么方法可以做到这一点而无需递归?另一个问题:Java中多重调度的用途是什么?我正在尝试用一种方法编写代码,它应该在参数的不同情况下运行不同的事件。否,如果声明/三元经营者/案件。 注意:我只能使用一种方法(部分问题),并

  • 问题内容: 我正在尝试使用嵌套的for循环显示一个星号菱形。 到目前为止,这是我的代码: 这很接近,但是我要两次打印9个星号。 如何调整第二个for循环以7个星号和2个空格开始输出? 谢谢您的帮助! 问题答案: 在您的第一个for循环中,删除=标记,然后使用<例如 完整代码