算法的BigO时间复杂度

时间:2012-02-09 22:39:52

标签: algorithm data-structures big-o time-complexity

这个算法的最大时间是什么? 输入:数组A和B,每个排序n> = 1个整数 输出:B中的元素数等于A

中前缀和的总和
c=0
for i=0 to n-1 {
  s=0
  for j=0 to n-1 {
    s=s+A[0]
    for k=1 to j {
      s=s+A[k]
    }
  }
  if B[i]=s {
    c=c+1
  }
}
return c

我得到n(n + 2)(n + 2)+1,即n ^ 3 + 4n ^ 2 + 4n + 1,即O(n ^ 3)

2 个答案:

答案 0 :(得分:1)

如果你只是在这里寻找BigO,你所要做的就是找出循环的数量,其中有多少是嵌套的。 在你的情况下你有两个循环(嵌套)因此它将是O(n * n)= O(n ^ 2)

P.S即使你的内环不像外层那样多次,BigO仍然保持不变。

答案 1 :(得分:1)

要确定增长的顺序,您可以按以下方式继续:

enter image description here