2010-06-26 107 views

回答

0

要麼一次合併兩個結果,要麼將結果與第三個合併,要麼改變合併邏輯以從所有三個列表中取最小元素。

0

遞歸地將數組集合分成需要合併的兩組數組。當該集合只包含一個數組時返回它。使用標準合併排序合併來自每次調用的結果列表。

array merge(list_of_arrays) 
{ 
    if (sizeof(list_of_arrays) == 1) 
     return list 
    else 
     return mergesort(merge(first_half(list_of_arrays)), merge(second_half(list_of_arrays))) 
} 
+0

臨時內存會發生什麼情況? – user355002 2010-06-26 15:20:52

+0

@matin - 不確定你的意思。唯一可觀的額外內存是標準mergesort,否則你只是分解你正在合併的數組。 – tvanfosson 2010-06-26 19:51:05