Java循环 - 有多少简单的操作?

时间:2015-02-10 08:30:49

标签: java loops time complexity-theory operations

在一个简单的java循环中执行了多少个简单的操作?

int result = 0;
for (int i = 0; i <= n; i++) {
    result = result + i;
}

我们在课堂上讨论并同意了8n + 13个简单的操作,但是对于正确的,记录在案的结果会很好。 感谢。

4 个答案:

答案 0 :(得分:2)

这是O(n)。所有其他花哨的8n +13都可以简化为常规O(n)

答案 1 :(得分:1)

这将是O(n)

  

O(n):时间如果循环,循环的复杂度被认为是O(n)   变量以恒定量递增/递减。对于   以下函数示例具有O(n)时间复杂度。

实施例

 // Here c is a positive integer constant   
   for (int i = 1; i <= n; i += c) {  
        // some O(1) expressions
   }

   for (int i = n; i > 0; i -= c) {
        // some O(1) expressions
   }

在您的情况下iresult常数率递增。

答案 2 :(得分:0)

我认为你问的是操作次数的复杂程度(不是数量级)所以我认为首先要把它分成小型操作然后进行计算:

int result = 0; // 1 op
int i = 0; // 1op
while (i <= n) { // n op of comparison
    result + i; // n op (1 op * n because is inside the loop)
    result = [result of operation]; // n op 
    i + 1 // n op
    i = [result of operation]; // n op
}

所以你有5n + 2次操作是O(n)量级。请记住(正如您在其他问题中看到的那样)重要的事情通常只是达到数量级。

此外,你可以在同情和跳跃中分得更多。分配和声明可以拆分。

答案 3 :(得分:-1)

其O(n)。性能以Big oh O来衡量。 O(0)比O(1)表现更好。 O(n)意味着消耗更多的时间,因此需要更多的处理时间,其中n是迭代次数。