一尘不染

如何使用O(n)时间和O(1)空间成本将两个排序的整数数组合并到位

algorithm

例如,给定一个整数数组及其两个连续序列的开始位置,分别为“ b1”和“ b2”,此外还提供了位置“ last”,该位置指示第二个序列的结束位置。从array
[b1]到array [b2-1]和从array [b2]到array [last]都是分开排列的,如何 使用O(n)时间和O(1)空间
成本将它们合并到位?


阅读 208

收藏
2020-07-28

共1个答案

一尘不染

这绝不是一个简单的问题。有可能,但是在实践中很少这样做,因为它比使用N-
scratch空间的标准合并要复杂得多。Huang和Langston的论文自80年代末以来一直存在,尽管实际的实现直到后来才真正浮出水面。早些时候,L。Trabb-
Prado于1977年发表的论文明显早于Huang和Langston,但我为找到该论文的确切文本而充满挑战。仅引用比比皆是。

后来出色的出版物,Geert,Katajainenb和Pasanen 撰写的《渐近有效的就地合并》(1995年),很好地涵盖了多种算法,并引用了Trabb-
Prado对这个问题的贡献。

2020-07-28