【问题标题】:Time complexity for 3 nested loops with 2 variables具有 2 个变量的 3 个嵌套循环的时间复杂度
【发布时间】:2013-08-12 18:50:57
【问题描述】:

当涉及 2 个变量而不仅仅是 N 个变量时,如何表示下一个嵌套循环的时间复杂度?

假设 N=输入的大小 而A=某个离散值(相关量)

所以对于 N=50000 和对于 A=30000

for( int i=0;i<N;i++)
{
    for( int j=0;j<A;j++ )
    {
       for( int x=0;x<N;x++)
       {
          // do something
          doSomething();
       }
    }
}

可能是 O(N^2*A) 吗?

提前谢谢你

【问题讨论】:

    标签: time-complexity nested-loops


    【解决方案1】:

    是的,您的情况复杂度为O(N^2*A)

    【讨论】:

    • 谢谢,如果 A 在每次迭代中变小?所以第一个是 30K 然后是 25K 然后是 20K 等等?
    • 嗯,这取决于。我们有N 迭代。 A 将如何变化?好的,第三次手术20K,第10次手术会是什么?
    • mmm 可能关于 A 的问题没有意义,因为在 80% 处理后开始从原始值下降到 0,所以如此准确可能没用。
    【解决方案2】:

    是的,O(A*N^2)。如果它们单独影响时间复杂度,您只会忽略较小的术语(即“O(A + N^2)”将是 O(N^2))

    【讨论】:

      猜你喜欢
      • 2021-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-07
      • 1970-01-01
      • 2021-02-15
      • 1970-01-01
      相关资源
      最近更新 更多