|
NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
|
分区算法的实现 更多...
函数 | |
| template<typename Iterator, typename Predicate> | |
| constexpr Iterator | partition (Iterator first, Iterator last, Predicate pred) |
| 分区算法 | |
| template<typename Iterator, typename Compare> | |
| constexpr Iterator | lomuto_partition (Iterator first, Iterator last, Compare comp) |
| Lomuto 分区算法(基准值归位) | |
| template<typename Iterator> | |
| constexpr Iterator | lomuto_partition (Iterator first, Iterator last) |
| Lomuto 分区算法(基准值归位) | |
分区算法的实现
|
constexpr |
Lomuto 分区算法(基准值归位)
| Iterator | 随机访问迭代器类型 |
| first | 范围起始 |
| last | 范围结束 |
在文件 partition.hpp 第 155 行定义.
引用了 lomuto_partition().
|
constexpr |
Lomuto 分区算法(基准值归位)
| Iterator | 随机访问迭代器类型 |
| Compare | 比较函数类型 |
| first | 范围起始 |
| last | 范围结束 |
| comp | 比较函数对象 |
选择 first、mid、last-1 的中位数作为基准值,将其交换到 first, 使用 Lomuto 方案分区,最后将基准值放置到正确位置并返回。
在文件 partition.hpp 第 119 行定义.
引用了 is_ranges_rnd_iter_v , 以及 iter_swap().
被这些函数引用 introspective_sort(), lomuto_partition(), nth_element() , 以及 quick_sort().
|
constexpr |
分区算法
| Iterator | 迭代器类型 |
| Predicate | 谓词类型 |
| first | 范围起始 |
| last | 范围结束 |
| pred | 一元谓词 |
将范围 [first, last) 重新排列,使得所有满足谓词 pred 的元素都出现在不满足谓词的元素之前。 不保证相同类别的元素保持原始相对顺序。
算法使用双向迭代器,从两端向中间扫描:
在文件 partition.hpp 第 46 行定义.
引用了 is_invocable_v, is_ranges_bid_iter_v , 以及 iter_swap().