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
}
所以我不太了解这里的一些事情,在计算 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
}