这里在实例化时候为什么没有确定l 和r 的值?

来源:3-2 归并排序法的实现

好嗨难

2020-12-30

SortTestHelper::testSort("Merge Sort", mergeSort, arr2, n);

void mergeSort(T arr[], int n)

void __mergeSort(T arr[], int l, int r)

void __merge(T arr[], int l, int mid, int r)

这里在实例化时候为什么没有确定l 和r 的值?只给了n的值就完成了排序

写回答

1回答

liuyubobobo

2020-12-31

因为对一个有 n 个元素的数组 arr 排序,l 就是 0, r 就是 n - 1。


所以,void mergeSort(T arr[], int n) 这个函数是这样的:

template<typename T>
void mergeSort(T arr[], int n){
    __mergeSort( arr , 0 , n-1 ); // 这里有 l 和 r 的值
}


继续加油!:)


0
0

算法与数据结构(C++版) 面试/评级的算法复习技能包

课程专为:短时间内应对面试、升职测评等艰巨任务打造

11187 学习 · 1614 问题

查看课程