用内循环重复时间确定循环的大O运行时是常量

时间:2015-04-26 09:22:40

标签: algorithm math big-o time-complexity complexity-theory

我有一个功能

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)。我想我的计算中有一个错误,但我不知道我的错误在哪里。

1 个答案:

答案 0 :(得分:1)

不,你没有犯错。你这么认为是对的,你的解决方案是完美的!

外循环将运行n次,内循环运行5次(常数)。

因此,循环复杂度将为O(5 * n)= O(n),其他语句具有恒定的时间复杂度。

因为 5 * n次执行程序意味着程序的O(n)时间复杂度