计算i ++的操作

时间:2013-10-22 14:37:40

标签: java operation

最近,我开始学习计算原始操作,从而估计程序的运行时间。但是,我在计算for循环的操作时遇到了问题。 比方说,for (int i=1; i<n; i++)

就我个人而言,我认为(i = 1)为1次,(i < n)为n次,i++n-1次,因此总共为2n次。 但是,有人告诉我,i++n-1只计算整个i++运行的次数。 i++等于i=i+1,我应该算2(n-1)次。

两次计算i++是否正确? ++代表一种方法,或者它是一个运算符?

6 个答案:

答案 0 :(得分:2)

在此代码中:

for (int i=1; i<n; i++)

增量块(此处为i++)在每次迭代结束时执行,因此执行n-1次。在第(n-1)次,终止条件为假,循环终止。

答案 1 :(得分:1)

1:你的循环是n-1次。这是因为它将在所有'i'中运行:

  

[1,n)== [1,n-1]

2: ++是一个运算符

答案 2 :(得分:0)

i ++等于i = i + 1所以

  1. 计算i + 1

  2. 将结果设置为i

  3. 总共2个步骤,但2只是一个常数,所以如果你使用大O / Omega表示法,那应该没关系

答案 3 :(得分:0)

让我们以不同的方式考虑forloop:

for(A,B,C)也可以写成

A;
while(B){
...
C;
}

所以A是一次性初始化,在循环运行之前完成

B是条件,只要条件成立,循环就会继续

C在每次迭代后完成,例如递增计数器,i ++

在您的示例中,循环将运行n-1次 我被初始化为1 每次循环后递增 跑得那么久

到第二部分: ++是一个运算符,它不等于i=i+1;

i会递增,但会返回原始i,而不是递增的++i

i=i+1确实等于{{1}}

答案 4 :(得分:0)

for (int i=1; i<n; i++)

在此块中,每次迭代都会调用i ++,此代码块的check语句为i<n部分。 因此它执行n次并且第n次它不通过检查语句并终止

答案 5 :(得分:0)

i++在java中称为一元运算符。但你应该算两次。 因为它 - 首先制作和添加 - 然后分配。