在一个简单的java循环中执行了多少个简单的操作?
int result = 0;
for (int i = 0; i <= n; i++) {
result = result + i;
}
我们在课堂上讨论并同意了8n + 13个简单的操作,但是对于正确的,记录在案的结果会很好。 感谢。
答案 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
}
在您的情况下i
和result
按常数率递增。
答案 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是迭代次数。