我有四个排序列表,我想将它们合并为一个排序列表。
最有效的方法是什么?如果实现可以并行完成,那就更好了。
最佳答案
这是 merge sort 的合并部分.
只取每个列表头部的四个元素中的最小值,并将其转储到输出列表中。重复直到所有列表都为空。假设 min4
是固定成本,那么这就是 O(N)。
如果您有更多信息(例如列表的范围),您可能可以稍微改进一下,但我认为这些不会影响渐近复杂度。
关于c - 合并排序列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11329215/