#include <algorithm>
#include <cstddef>
#include <iterator>
#include <span>
#include <utility>
Go to the source code of this file.
|
| template<typename It, typename Less> |
| void | pulp::state::stable_sort_detail::insertion_sort (It base, std::size_t a, std::size_t b, Less &less) |
| template<typename It, typename Less> |
| void | pulp::state::stable_sort_detail::sym_merge (It base, std::size_t a, std::size_t m, std::size_t b, Less &less) |
| template<typename It, typename Less> |
| void | pulp::state::stable_sort_in_place (It first, It last, Less less) |
| | Sorts [first, last) by less, keeping equal elements in their original order, without allocating.
|
| template<typename It, typename Key, typename Value, typename Count> |
| bool | pulp::state::stable_counting_sort (It first, It last, Key key, std::span< Value > scratch, std::span< Count > counts) |
| | Stable counting sort of [first, last) on a small non-negative integer key, O(n + counts.size()) and allocation-free, using caller-lent storage (typically sized once at prepare time).
|