我正在浏览Big Oh的例子,用Mark Weiss计算数据结构和算法分析的运行时间计算。
示例是:
int sum(int N)
/*1*/ int sum=0;
/*2*/ for (int i=1;i<=N;i++)
/*3*/ sum=sum+i*i*i;
/*4*/ return sum;
我理解每一行的成本,但我对2号线感到困惑,在第2行有三件事,初始化,测试和增量。因此,初始化的总成本为1
,测试(n+1)
和n为所有增量。我想知道测试成本的方法是n+1
,因为根据条件,循环将运行n
时间,然后费用将如何n+1
?
答案 0 :(得分:1)
假设n = 5。条件将运行6次,并且第6次条件将不为真,因此n + 1测试。