for循环的时间复杂度

时间:2015-01-17 18:08:22

标签: java algorithm data-structures big-o time-complexity

所以我在这里不太了解一些事情,在计算for(int i = 1; i <= n; i++)中的步骤时答案是:

分配int i = 1

1,i <= n为n + 1,i++为n,总共为2n + 2。我的困惑分为三部分:

1。)作业int i = 1;也不是吗?如果让我们说,n = 5,我们最终不会分配int i = 2,int i = 3 ......等等吗?

2。)对于i <= n,它是n + 1,因为你正在进行n次检查,当它是假的时候是+ 1吗?

3。)最后,是i++ n因为你正在进行n次添加吗?

2 个答案:

答案 0 :(得分:2)

For循环看起来像for(INIT; CONDITION; INCREMENT) { /* ... */ }。 INIT部分仅执行一次。这相当于:

INIT
while(CONDITION)
{ /* ... */
  INCREMENT
}

答案 1 :(得分:1)

无论n是什么,初始化int i=1;在循环开始时只执行一次。

至于2)和3),你是对的。