我知道问题不是太具体.
我想要的只是告诉我如何将普通合并排序转换为就地合并排序(或具有恒定额外空间开销的合并排序).
我所能找到的(网上)是"太复杂"或"超出本文范围"的网页.
唯一已知的就地合并方式(没有任何额外空间)太复杂,无法简化为实际程序.(取自这里)
即使它太复杂,如何使合并排序到位的基本概念是什么?
从关于 inplace_merge 的 C++ 文档中,算法的复杂性是“如果使用内部缓冲区,则在比较中为线性 (N-1),否则为 NlogN(其中 N 是范围 [first,last) 中的数字元素)”。内部缓冲区是什么意思,是什么导致 O(N-1) 与 O(NlogN) 的复杂性?