我对for循环的运行时计算有疑问。
这是" 2.4.1简单示例"中所示的示例。来自Java中的数据结构和算法分析。作者是Mark Allen Weiss。这是第36页。
书籍说&#34;第2行有隐藏的初始化i,测试i≤N,并递增i的成本。所有这些的总成本是1来初始化,所有测试都是N + 1,所有增量都是N,即2N + 2。&#34;第2行是for( int i = 1; i <= n; i++ )
。我想知道为什么代码N + 1用于所有测试i≤N的原因。我觉得它应该是N,因为如果我≤N,它需要N次测试。我一定是错的,但我想知道为什么。
public static int sum( int n )
{
int partialSum;
partialSum = 0;
for( int i = 1; i <= n; i++ )
partialSum += i * i * i;
return partialSum;
}
谢谢!
答案 0 :(得分:1)
你是正确的,循环只运行N次,但记住我增加并检查每个循环。因此,一旦循环运行了N次,就必须再检查一次,看它是否需要再次运行循环。