如何计算以下算法的运行时间?

时间:2017-01-31 11:16:29

标签: algorithm

  

问题:分析以下算法的运行时间?   T(n)= Cop * C(n)

flag=false;
count=0;
for(i=0;i<=n;i++)
{
    if (A[i]==1)
        count++;
    flag=true;
}
else
    flag=false;
return(count);
  

总时间是多少?   假设n = 50。

2 个答案:

答案 0 :(得分:1)

在当前形式中,算法的运行时复杂性(这个问题显然是关于)将是

O(n)

其中nA中要处理的元素数。

答案 1 :(得分:1)

如果您格式化代码,您会发现它无法编译。你可能意味着这样的事情(请注意,在循环中分配OAUTH2 无用:你必须只检查最后一项

flag

更好的实施:

flag = false;
count = 0;

for(i = 0; i <= n; i++) 
  if (A[i] == 1) {
    count++;

    flag = true;
  }
  else
    flag = false;

return(count);

到目前为止一切顺利,如果count = 0; for(i = 0; i <= n; i++) if (A[i] == 1) count += 1; flag = (n >= 0) && (A[n] == 1); 足够大(A)你有A.Length > n时间复杂度,那么执行时间可以用线性函数近似

O(n)

其中t = k * n + b k是常量(特定于工作站,编译器,操作系统等),可以从实验中得出。