查找这些嵌套for循环的时间复杂度函数

时间:2018-01-27 21:00:04

标签: c++ function time time-complexity

请记住,以下伪代码与c ++类似,因此我将使用c ++标记

void matrixmult (int n, const number A[][], const number B[][], number C[][])
{
   index i, j, k;

   for(i = 1; i <= n; i++)                //the i for loop will run n + 1 times
       for(j = 1; j <=n; j++)             //the j for loop will run n(n+1) times
           C[i][j] = 0                    //this will run (n-1)n times                                  
           for(k = 1; k <=n; k++)         //the k for loop will run (n-1)(n+1) times
               C[i][j] = C[i][j]+ A[i][k] * B[k][j]; //this will run n((n-1)(n+1))

我的教授指示我找到上面最后一行代码的时间复杂度函数

我认为时间复杂度函数是T(n)= n(n-1)(n + 1)

我需要有人来仔细检查我的工作,我是否在某个地方犯了错误?我在这里得到了正确的时间复杂度吗?

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

你有三个嵌套循环,每个循环n个步骤,所以它是n^3

更详细。根据计算模型,您可以改为计算分配数,比较数,乘法数甚至存储器访问数。