Как написать сортировку слиянием через рекурсию?(c++)
template <typename RandomIt>
void MergeSort(RandomIt range_begin, RandomIt range_end) {
if (range_end- range_begin < 2) {
return;
}
vector<typename RandomIt::value_type> elements(range_begin, range_end);
auto it = elements.begin() + distance(elements.begin(), elements.end()) / 2;
vector<typename RandomIt::value_type> v3;
MergeSort(elements.begin(), it);
MergeSort(it, elements.end());
merge(elements.begin(),it,it,elements.end(),back_inserter(v3));
}
При сборке высвечивается ошибка,что при вызове merge последовательность не отсортирована.Как это исправить?