有人可以通过告诉我以下算法的复杂性来帮助我吗?

时间:2017-03-07 09:06:10

标签: java time-complexity

我正在尝试了解以下解决方案是否具有O(n^2)O(n^3)时间复杂度。

for (int i=1; i<array.length; i++)
     ....
     for (int j=0; j<i; j++)
          ....
          for (int k=i+1; k<array.length-1; k++)
               ...

为索引为i的所有数组运行第一个循环。 第二个循环从0运行到索引i。 第三个循环从索引i运行到数组的末尾。

1 个答案:

答案 0 :(得分:2)

您的代码的复杂性可以通过以下表达式进行等效评估:

enter image description here

其中n=array.length

如果你计算这笔大笔金额,你会发现它会产生(1/6)*n*(n^2-13) = (1/6)*n^3 - (13/6)*n,这会带来O(n^3)的复杂性。