【发布时间】:2014-10-05 05:17:31
【问题描述】:
假设您有一个合并函数,它将在 O(s1+s2) 时间内合并(查找)两个大小为 s1 和 s2 的列表 L1 和 L2 的并集。合并 k 个大小为 s1、s2、...、sk 的列表的最佳方法是什么?
我在想我们应该首先对 s1, ..., sk 进行排序,然后对与最小的两个大小相对应的前两个列表进行排序。当这些被合并时,我们在排序后的大小列表中找到它们的大小位置并继续该过程,直到我们最终得到一个列表。
我在两件事上遇到了麻烦:1. 这是否确实是最佳的(是否有另一种方法可以更快地返回)? 2. 合并时列表大小发生变化时如何分析运行时间?
【问题讨论】: