下面C++代码以递归方式实现合并排序,并假设 merge (int T[], int R[], int s, int m, int t) 函数将有序(同样排序规则)的T[s..m]和T[m+1..t]归并到R[s..t]中。横线处应填上代码是( )。
void mergeSort(int SList[], int TList[], int s, int t, int len){
if (s == t){
TList[s] = SList[s];
return;
}
int *T2 = new int[len];
int m = (s + t) / 2;
____________________;
merge(T2, SList, s, m, t);
delete[] T2;
}
- A. mergeSort(SList, T2, s, m,len), mergeSort(SList, T2, m,t,len)
- B. mergeSort(SList, T2, s, m-1,len), mergeSort(SList, T2, m+1,t,len)
- C. mergeSort(SList, T2, s, m,len), mergeSort(SList, T2, m+1,t,len)
- D. mergeSort(SList, T2, s, m-1,len), mergeSort(SList, T2, m-1,t,len)
正确答案:C