#3345. [GESP202312 五级 C++] 第 2 题

[GESP202312 五级 C++] 第 2 题

下面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;
    return ;
}

{{ select(1) }}

  • mergeSort(SList, T2, s, m-1, len), mergeSort(SList, T2, m, t, len)
  • mergeSort(SList, T2, s, m-1, len), mergeSort(SList, T2, m+1, t, len)
  • mergeSort(SList, T2, s, m, len), mergeSort(SList, T2, m+1, t, len)
  • mergeSort(SList, T2, s, m-1, len), mergeSort(SList, T2, m-1, t, len)