问题:分析以下算法的运行时间? 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。
答案 0 :(得分:1)
在当前形式中,算法的运行时复杂性(这个问题显然是关于)将是
O(n)
其中n
是A
中要处理的元素数。
答案 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
是常量(特定于工作站,编译器,操作系统等),可以从实验中得出。