合并两个带有O(1)额外空间的排序数组

时间:2016-09-01 01:25:58

标签: arrays algorithm merge time-complexity

如果允许我们使用临时数组的O(m+n)额外空间,我们会合并2个有序数组O(n)。所以所有元素都合并为一个临时数组。

但是,如果我只允许使用O(1)额外空格,如何执行合并?

1 个答案:

答案 0 :(得分:2)

是的,可以将两个排序的数组合并为O(1)额外空格。

我们可以使用插入排序。

来实现这一目标

但是使用O(1)额外空间合并两个排序数组的时间复杂度将是 O(n ^ 2)。

如果我们允许使用O(n)额外空格,那么我们可以使用合并排序,时间复杂度仅为 O(nlogn)。