以下算法的复杂度

时间:2018-12-19 23:54:19

标签: algorithm time-complexity complexity-theory

我正在尝试查找以下算法的复杂性:

for(i=1;i<=n;i++){
 for(j=1;j<=i;j++){
  for(k=i;k<=j;k++){
    //code
  }
 }
}

1 个答案:

答案 0 :(得分:2)

由于您的k以“ i”开头并上升到“ j”,因此最坏情况下的时间复杂度为O(n 2 )。让我们来看一个例子。对于i = 4,j从1变为4,并且k对每个j值仅运行一次(除了j = 4正好运行2次)。因此对于j的每个值,内循环在O(1 ) 时间。外部两个循环花费O(n 2 )时间。另外,还要考虑到您最里面的循环中的(//代码)的运行时间为O(1)。因此,该算法的时间复杂度为 O(n 2