Sorting algorithms/Bogosort: Difference between revisions
Content added Content deleted
m (→{{header|C++}}) |
m (→{{header|C++}}) |
||
Line 309: | Line 309: | ||
#include <random> |
#include <random> |
||
template<typename RandomAccessIterator> |
template <typename RandomAccessIterator, typename Predicate> |
||
void bogo_sort(RandomAccessIterator begin, RandomAccessIterator end |
void bogo_sort(RandomAccessIterator begin, RandomAccessIterator end, |
||
Predicate p) { |
|||
std::random_device rd; |
std::random_device rd; |
||
std::mt19937 generator(rd()); |
std::mt19937 generator(rd()); |
||
while (!std::is_sorted(begin, end)) { |
while (!std::is_sorted(begin, end, p)) { |
||
std::shuffle(begin, end, generator); |
std::shuffle(begin, end, generator); |
||
} |
} |
||
} |
|||
template <typename RandomAccessIterator> |
|||
void bogo_sort(RandomAccessIterator begin, RandomAccessIterator end) { |
|||
bogo_sort( |
|||
begin, end, |
|||
std::less< |
|||
typename std::iterator_traits<RandomAccessIterator>::value_type>()); |
|||
} |
} |
||