template<typename T>
void mergeArray(vector<T> &arr, int first, int mid, int last)
{
vector<T> arr_tmp(arr);
int i = first, j = mid + 1, k = first;
while(i <= mid && j <= last)
{
if(arr_tmp[i] < arr_tmp[j])
arr[k++] = arr_tmp[i++];
else
arr[k++] = arr_tmp[j++];
}
while(i <= mid) arr[k++] = arr_tmp[i++];
while(j <= last) arr[k++] = arr_tmp[j++];
}
template<typename T>
void mergeSort(vector<T> &arr, int first, int last)
{
if(first < last)
{
int mid = (first + last) / 2;
mergeSort(arr, first, mid);
mergeSort(arr, mid + 1, last);
mergeArray(arr, first, mid, last);
}
}
MergeSort -- 归并排序(C++)
最新推荐文章于 2025-08-13 18:42:40 发布
本文探讨了C++模板函数在实现快速排序算法中的应用,详细介绍了模板函数的使用方法,以及如何通过模板参数实现算法的类型泛化。通过实例演示,展示了模板函数在解决实际问题时的灵活性和高效性。
809

被折叠的 条评论
为什么被折叠?



