Algorithm 以下算法的复杂性

Algorithm 以下算法的复杂性,algorithm,time-complexity,complexity-theory,Algorithm,Time Complexity,Complexity Theory,我试图找出以下算法的复杂性: for(i=1;i<=n;i++){ for(j=1;j<=i;j++){ for(k=i;k<=j;k++){ //code } } } 对于(i=1;i由于k从“i”开始,一直到“j”,最坏情况下的时间复杂度是O(n2)。让我们举个例子看看。对于i=4,j从1到4,k对j的每个值只运行一次(j=4正好运行2次除外)。因此,对于j的每个值,内循环运行O(1)时间。外两个循环运行O(n2)时间。另外,考虑到最内层循环中的(//

我试图找出以下算法的复杂性:

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

对于(i=1;i由于k从“i”开始,一直到“j”,最坏情况下的时间复杂度是O(n2)。让我们举个例子看看。对于i=4,j从1到4,k对j的每个值只运行一次(j=4正好运行2次除外)。因此,对于j的每个值,内循环运行O(1)时间。外两个循环运行O(n2)时间。另外,考虑到最内层循环中的(//代码)在O(1)时间内运行。因此,此算法的时间复杂度为O(n2)

因为k从“i”开始,一直到“j”,所以最坏情况下的时间复杂度为O(n2).让我们举一个例子来看看。对于i=4,j从1到4,k对于j的每个值只运行一次(除了j=4,它正好运行了2次)。因此对于j的每个值,内部循环以O(1)时间运行。外部两个循环以O(n2)时间运行。另外,考虑到最内部循环中的(//代码)以O(1)时间运行因此,该算法的时间复杂度为O(n2)

答案取决于内部循环开始处的
k=i
是否是
k=1
的打字错误,或者是你的教授试图欺骗你。为
n
选择几个小值,然后在
//code
注释所在的位置打印
k
,应该会让你对这些循环的工作方式有一些了解。可能的重复欢迎来到StackOverflow。请阅读并遵循帮助文档中的发布指南,正如您创建此帐户时所建议的那样,并在此处申请。我们希望您在发布之前进行尽职调查;之前有很多问题向您展示了如何攻击大O决定。答案取决于内部循环开始处的
k=i
是键入
k=1
或你的教授试图欺骗你。为
n
选择一些小值,然后在
//code
注释所在的位置打印
k
,应该可以让你对这些循环的工作原理有一些了解。欢迎使用StackOverflow的可能重复项。Ple请阅读并遵循您创建此帐户时建议的帮助文档中的发布指南,并在此处申请。我们希望您在发布之前进行尽职调查;之前有很多问题向您展示了如何攻击大O决定。