我正试图找出解决这一特定问题的最佳解决方案。
以下是我要做的事情的简要说明:
我想在保持数组排序的同时将A的元素添加到B中。
例如:
//Given:
A = [1,3,5]
B = [2,4,6, , , ]
//Desired Result:
B = [1,2,3,4,5,6]
到目前为止,我想到的最快的方法是:
我试图弄清楚有没有办法比O(nlogn)更快地做到这一点。
在这种情况下,空间复杂性不是问题。
答案 0 :(得分:0)
您只需要mergesort的合并步骤。合并步骤采用两个排序的数组,并在O(n)时间内将它们组合成一个排序的数组。
您可以通过在A和B的尾部而不是头部开始合并来节省一些时间。这将允许您在为B分配的存储中执行合并,而不是需要合并到第三个数组,然后复制回B。