c - 合并排序列表

标签 c sorting

我有四个排序列表,我想将它们合并为一个排序列表。
最有效的方法是什么?如果实现可以并行完成,那就更好了。

最佳答案

这是 merge sort 的合并部分.

只取每个列表头部的四个元素中的最小值,并将其转储到输出列表中。重复直到所有列表都为空。假设 min4 是固定成本,那么这就是 O(N)。

如果您有更多信息(例如列表的范围),您可能可以稍微改进一下,但我认为这些不会影响渐近复杂度。

关于c - 合并排序列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11329215/

相关文章:

C#如何使递归函数返回整数数组中第n个最常见的整数

php - 按对象中的日期对对象数组进行排序

objective-c - 如何对 NSArray 进行自然排序?

javascript - 对两个关联数组/堆栈进行排序

c - 在 C 中调试多进程程序

如果 Linux 内核模块不使用任何物理硬件,它可以使用 UIO 吗?

c - 打印所有单词及其计数

C 系统调用处理程序引用具有不同返回类型和参数数量的函数

c - goto 语句的行为

postgresql - 对分区和分区内的行进行排序