sum(array,n)
{
tsum=0;
for(i=0;i<n;i++)
tsum=tsum+array[i];
return tsum;
}
答案 0 :(得分:2)
在术语big-O中,它与处理的数组元素的数量成线性关系,因此O(n)
(注意,你的代码会覆盖i参数,假设参数是n,表示要求和的数组元素的数量?)
答案 1 :(得分:1)
您在1步中声明tsum = 0,然后运行n步的循环。在每次迭代中,你做一个1步的求和,然后你在1步中返回tsum。您的步数约为:
1 + 3n + 1,就大哦符号而言是O(n),忽略常数,以及所有低阶项(如果有一个常数)。有3n个步骤,如每次迭代,你递增变量i,检查它是否小于n,然后进入循环进行计算。
答案 2 :(得分:1)
Cost Times
tsum=0; c1 1
for(i=0;i<n;i++) c2 n+1
tsum=tsum+array[i]; c3 n
return tsum; c4 1
算法总成本为1 * c1 +(n + 1) c2 + n c3 + 1 * c4
因此,该算法所需的时间与n成正比。