2010-06-26 156 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