对于以下代码:
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。这是正确的还是我想念的?
谢谢
答案 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次,因此就复杂性而言,可以将其视为恒定代价。 j
和k
中的内部两个循环彼此独立,并且都是O(n)
。因此,我们可以以多种复杂性来获得作为O(n^2)
的函数的整体运行时间的n
。