for循环的时间复杂度

Time Complexity of a for loop

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

1 赋值 int i = 1,n+1 赋值 i <= n,n 赋值 i++,总共 2n+2。我的困惑分为 3 个部分:

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

2.) 对于i <= n,是n+1因为你在执行n次检查,当它为false时+1吗?

3.)最后,是i++n是因为你在进行n次加法吗?

初始化int i=1;只在循环开始时执行一次,与n无关。

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

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

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