我很困惑。我得到了一个合法的方法,我知道有效。
template<typename T, typename X>
void merge(std::vector<T>& vec, X start, X mid, X end) { ... }
问题是我不知道如何实现合并排序方法。
这是我到目前为止所做的:
template<typename T, typename S>
void merge_sort(std::vector<T>& vec, X begin, X end) {
if (start >= end) return;
X midpoint = ( start + end ) / 2;
merge_sort(vec, begin, midpoint);
merge_sort(vec, midpoint + 1, end);
merge(vec, begin, midpoint, end);
}
我不知道我做错了什么。我需要帮助解决这个问题,以及为什么我做错了。我不能提供合并方法代码,但我知道它有效。
如果这在某种程度上是正确的,那么我应该放在什么主要位置以确保我正确地测试它。