自上而下合并的时间复杂度排序?

时间:2015-04-30 02:51:48

标签: sorting time merge complexity-theory

我理解mergesort的时间复杂度是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;    
    } 
}

我从维基百科页面得到了这个,并且“if”声明让我失望,而它的条件让我疯狂。任何帮助表示赞赏。

0 个答案:

没有答案