这是我试图分析的算法(见下文)。我不明白为什么 O(n)
当合并排序具有时间复杂度时O(n logn)
,它们似乎都在做同样的事情。
那么两者都具有相同的 j 时间复杂度,如果您将 j 保留为行,则2^j X c(n/2^j)
=cn
并且它们的运行时间均为log n
,其中 n 是元素的数量。
Algorithm: BinarySum(A, i, n)
Input: An array A and integers i and n.
Output: The sum of the n integers in A starting at index i.
if n = 1 then
return A[i]
return BinarySum(A, i, [n/2] ) + BinarySum(A, i + [n/2], [n/2])
谢谢,丹尼尔