一 基本概念
std::inplace_merge 是 C++ 标准库<algorithm> 中的算法,用于将两个已排序的相邻范围 合并为一个有序范围,且原地操作(无需额外存储空间)。
二 函数原型
template< class BidirectionalIterator >
void inplace_merge(
BidirectionalIterator first,
BidirectionalIterator middle,
BidirectionalIterator last
);
template< class BidirectionalIterator, class Compare >
void inplace_merge(
BidirectionalIterator first,
BidirectionalIterator middle,
BidirectionalIterator last,
Compare comp
);
参数:
first: 第一个有序范围的起始迭代器
middle: 第一范围的结束位置,同时是第二范围的起始位置
last: 第二范围的结束位置
comp (可选): 自定义比较函数(如降序排序)
三 核心功能
1 合并两个有序区间
将 [first, middle) 和 [middle, last) 合并为 [first, last),保持整体有序。
2 原地操作
直接修改原容器,不依赖额外内存(具体实现可能根据内存可用性调整策略)。
四 时间复杂