【发布时间】:2015-04-30 02:51:47
【问题描述】:
我知道归并排序的时间复杂度是 O(nLogn),但是对于它的 Top Down 变体,我无法得出这个结论。
TopDownMerge(A[], iBegin, iMiddle, iEnd, B[])
{
i0 = iBegin, i1 = iMiddle;
// While there are elements in the left or right runs
for (j = iBegin; j < iEnd; j++) {
// If left run head exists and is <= existing right run head.
if (i0 < iMiddle && (i1 >= iEnd || A[i0] <= A[i1]))
B[j] = A[i0];
i0 = i0 + 1;
else
B[j] = A[i1];
i1 = i1 + 1;
}
}
我从 Wikipedia 页面得到了这个,“if”语句让我感到厌烦,而是它的条件让我发疯。任何帮助表示赞赏。
【问题讨论】:
-
抱歉是哪种语言?有什么问题?
-
C++,不知道if语句运行了多少次
标签: sorting time merge complexity-theory