运行时间和theta表示法

时间:2018-09-18 05:27:19

标签: runtime big-o

对于以下代码:

for(i=0;i<5;i++)
 for(j=2;j<n;j++)
  {
      c[i][j]=0;
       for(k=0;k<n;k++)
       c[i][j]=a[i][k]*b[k][j];
  }

我想说运行时间是theta(n ^ 3),正如我在k循环中看到的那样,有两个n(n ^ 3),在另一个循环中还有另一个n,使它成为n ^ 3。这是正确的还是我想念的?

谢谢

1 个答案:

答案 0 :(得分:0)

这是您的代码,格式为:

for (i=0; i < 5; i++) {
    for (j=2; j < n; j++) {
        c[i][j] = 0;
        for (k=0; k < n;k++)
            c[i][j] = a[i][k]*b[k][j];
    }
}

i中的外部循环仅重复5次,因此就复杂性而言,可以将其视为恒定代价。 jk中的内部两个循环彼此独立,并且都是O(n)。因此,我们可以以多种复杂性来获得作为O(n^2)的函数的整体运行时间的n