for(int i=0;i<n;i++)
{
// Some code
}
我们通常说这个循环运行n + 1次,因此n + 1步骤,并且有一步是初始化i = 0。 我已阅读过大部分教科书。 我的问题是,每次循环运行时,还有一个步骤将i递增到i + 1即i = i + 1,这也是计算时间复杂度时应该计算的步骤之一。我是一个新手算法分析帮助我解决了这个问题。
答案 0 :(得分:3)
我们通常说这个循环运行n + 1次,所以n + 1步为此[...]
不,我们说它适用于 n 迭代。这是将0
的起始索引与写为< n
的边界检查相结合的重点。一旦计数器达到n
,它将在进行n
次迭代后退出循环(一次为0,一次为1,一次为2,...一次为n - 1,然后退出)。
增加计数器所做的工作,无论是i++
,i += 1
还是i = compute_the_next_index(i)
,都不算作“步骤”。步骤是迭代,即循环体的执行。