我有一个功能
for(int i=0;i<n; i++)
{
b[i]=0;
for(int j=0;j<5;j++)
{
b[i]=a[j+i]
}
}
我需要计算上述函数的大O.我的答案是:
内循环运行5n
时间=&gt; O(n)
。
因此总复杂度为O(n)
。我想我的计算中有一个错误,但我不知道我的错误在哪里。
答案 0 :(得分:1)
不,你没有犯错。你这么认为是对的,你的解决方案是完美的!
外循环将运行n次,内循环运行5次(常数)。
因此,循环复杂度将为O(5 * n)= O(n),其他语句具有恒定的时间复杂度。
因为 5 * n次执行程序意味着程序的O(n)时间复杂度。