这个算法的最大时间是什么? 输入:数组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)
答案 0 :(得分:1)
如果你只是在这里寻找BigO,你所要做的就是找出循环的数量,其中有多少是嵌套的。 在你的情况下你有两个循环(嵌套)因此它将是O(n * n)= O(n ^ 2)
P.S即使你的内环不像外层那样多次,BigO仍然保持不变。
答案 1 :(得分:1)
要确定增长的顺序,您可以按以下方式继续: