这个嵌套for循环的最大估计是什么?

时间:2014-04-15 17:38:52

标签: java loops for-loop big-o nested-loops

我试图找出以下嵌套for循环的大估计值。

for(int i = 10; i to 100; i++){
 for(int j = 1; j to i; j++){
  for(int k = 1; k to j; k++){
   s=s+i+j;
  }
 }
}

我在想这两个内部循环运行n次,但我不确定第一个循环。

Big O对此代码的估计是什么?

2 个答案:

答案 0 :(得分:4)

从技术上讲,复杂度为O(1),因为100是常量,因此操作数始终相同。如果作者认为100是一个参数,可以是一些变量,即

int n = 100; //or read it somewhere
for (int i = 10; i < n; ++i) {
    .... 
}

然后复杂性为O(n^3)。第一个循环体执行n - 10O(n),第二个循环体从n - 10次执行到一次,再次为O(n),并且对于最里面的循环可以说明相同,因此给我们O(n^3)

有助于理解大O符号的文章:Big O notation

答案 1 :(得分:1)

复杂度为O(1),因为此处没有n且操作数可以精确计算