【发布时间】:2012-02-09 22:39:52
【问题描述】:
这个算法的 bigO 时间是多少? 输入:数组 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 个循环。一个基于 1/2,另一个 = O(n^2 / 2) = O(n^2)。冒泡排序。
-
嘿。两个 cmets 说答案是正确的,然后 OP 改变了问题。
标签: algorithm data-structures big-o time-complexity