AlgoPlus
v0.1.0
Loading...
Searching...
No Matches
src
algorithms
sorting
merge_sort.h
1
#ifndef MERGE_SORT_H
2
#define MERGE_SORT_H
3
4
#include <algorithm>
// Required for std::inplace_merge
5
#include <iostream>
6
#include <vector>
7
19
template
<
typename
Iter>
void
merge_sort(Iter begin, Iter end) {
20
if
(end - begin > 1) {
21
Iter mid = begin + (end - begin) / 2;
// Assumes Random Access Iterator
22
merge_sort(begin, mid);
23
merge_sort(mid, end);
24
std::inplace_merge(begin, mid,
25
end);
// Elements must be comparable and move-assignable
26
}
27
}
28
29
#endif
// MERGE_SORT_H
Generated by
1.13.2