Algorithm 大O表示法:嵌套循环

Algorithm 大O表示法:嵌套循环,algorithm,time-complexity,big-o,Algorithm,Time Complexity,Big O,我们一直在试图用大O表示法来计算这个算法的时间复杂度。 我只发现第一个循环算作Om,第二个循环算作Om^2。但我有一个问题。这个嵌套循环算作Om^3,还是我必须以增长最快的函数为基础,说这个循环算作Om^2?是什么帮助了我在大学的学习,请想想一个例子-例如2 sum = 0; for (i = 0; i < m; i++) for (j = 0; j < m*m; j++) sum++; 因此,循环运行8次,即2*4次,即

我们一直在试图用大O表示法来计算这个算法的时间复杂度。
我只发现第一个循环算作Om,第二个循环算作Om^2。但我有一个问题。这个嵌套循环算作Om^3,还是我必须以增长最快的函数为基础,说这个循环算作Om^2?

是什么帮助了我在大学的学习,请想想一个例子-例如2

     sum = 0;
      for (i = 0; i < m; i++)
        for (j = 0; j < m*m; j++)
           sum++;

因此,循环运行8次,即2*4次,即8次,即2*2*2,或2³。

在大学里对我有帮助的是,想想一个例子——例如2

     sum = 0;
      for (i = 0; i < m; i++)
        for (j = 0; j < m*m; j++)
           sum++;

因此循环运行8次,即2*4次,即8次,即2*2*2或2³。

您必须计算sum++有效执行的次数,而不是推测函数的增长

每次调用内部循环时,它执行sum++的次数正好是m²

而内循环被外循环执行了m次,因此总共是m³sum++


不用说,Om³。

您必须计算sum++有效执行的次数,而不是猜测函数的增长

每次调用内部循环时,它执行sum++的次数正好是m²

而内循环被外循环执行了m次,因此总共是m³sum++


不用说,Om³。

它是相乘的,所以Om^3。与启用“简单循环”的方式相同,但有两个这样的嵌套循环处于启用状态*n外部循环为Om,内部循环为Om^2,整个循环为Om x m^2=Om^3。它是相乘的,所以Om^3。与“简单循环”打开的方式相同,但有两个这样的嵌套循环打开*外循环是Om,内循环是Om^2,整个是Om x m^2=Om^3一些与问题更相关的缩进和解释将有助于m^2…@YvesDaoust No.特别是对于这种解释,OP似乎是个初学者。@e2-e4:OP自己缩进了代码。我同意这个解释很弱,因为有8次是在没有任何理由的情况下宣布的,然后根据经验计算为2³,这是欺骗。我实际上想向OP展示一种方法来验证他的假设。但我的解释并不充分,这是正确的。这种实验方法只有在你观察算法内部工作的情况下才能起作用,因为单一关系式f2=8告诉你关于f的任何有用信息。例如,这可能与Fm=2m²、m+6、2^m²-1相匹配……一些与问题更相关的缩进和解释将有助于m^2…@YvesDaoust No。特别是对于这种解释,OP似乎是个初学者。@e2-e4:OP自己也缩进了代码。我同意这个解释很弱,因为有8次是在没有任何理由的情况下宣布的,然后根据经验计算为2³,这是欺骗。我实际上想向OP展示一种方法来验证他的假设。但我的解释并不充分,这是正确的。这种实验方法只有在你观察算法内部工作的情况下才能起作用,因为单一关系式f2=8告诉你关于f的任何有用信息。例如,这可以匹配Fm=2m²、m+6、2^m²-1。。。