4#ifndef TETL_ALGORITHM_GNOME_SORT_HPP
5#define TETL_ALGORITHM_GNOME_SORT_HPP
7#include <etl/_algorithm/iter_swap.hpp>
8#include <etl/_functional/less.hpp>
9#include <etl/_iterator/prev.hpp>
17template <
typename BidirIt,
typename Compare>
18constexpr auto gnome_sort(BidirIt first, BidirIt last, Compare comp) ->
void
22 if (i == first
or not comp(*i, *
etl::prev(i))) {
25 etl::iter_swap(i,
etl::prev(i));
35template <
typename BidirIt>
36constexpr auto gnome_sort(BidirIt first, BidirIt last) ->
void
38 etl::gnome_sort(first, last,
less());
constexpr auto gnome_sort(BidirIt first, BidirIt last) -> void
Sorts the elements in the range [first, last) in non-descending order.
Definition gnome_sort.hpp:36
constexpr auto gnome_sort(BidirIt first, BidirIt last, Compare comp) -> void
Sorts the elements in the range [first, last) in non-descending order.
Definition gnome_sort.hpp:18
Definition adjacent_find.hpp:9
Function object for performing comparisons. Unless specialised, invokes operator< on type T....
Definition less.hpp:15