最近在一次采访中我被问到了一个问题
我们得到一个大小为n+m
的数组A,其中第一个n
个位置以随机顺序填充元素(最后是m个空位)。另外,我们有一个按随机顺序排列m
个元素的数组B.
编写合并函数,以便数组A按排序顺序填充(n + m)个元素。
我能够提供O((n+m)log(n+m))
解决方案。
这个问题有更好的解决方案吗?
答案 0 :(得分:1)
否那里没有更好的解决方案。
设t = max(m,n)
然后复杂性为O(tlog(t))
。
我们如何继续证明没有更好的解决方案? />
如果对数据一无所知时有更好的解决方案,那么给定任何大小为N (big enough)
的数组,我们可以将其拆分为n
,{ {1}}数组并且排序小于m
。