在两个小的未排序数组上合并操作以生成一个大的排序数组

时间:2017-03-10 21:02:09

标签: arrays function sorting merge time-complexity

最近在一次采访中我被问到了一个问题 我们得到一个大小为n+m的数组A,其中第一个n个位置以随机顺序填充元素(最后是m个空位)。另外,我们有一个按随机顺序排列m个元素的数组B. 编写合并函数,以便数组A按排序顺序填充(n + m)个元素。 我能够提供O((n+m)log(n+m))解决方案。 这个问题有更好的解决方案吗?

1 个答案:

答案 0 :(得分:1)

那里没有更好的解决方案。

t = max(m,n)然后复杂性为O(tlog(t))

我们如何继续证明没有更好的解决方案? />
如果对数据一无所知时有更好的解决方案,那么给定任何大小为N (big enough)的数组,我们可以将其拆分为n,{ {1}}数组并且排序小于m