在归并排序的合并操作中,如下代码片段可以正确地将两个已排序的子数组 L 和 R 合并回原数组 arr

中。

void merge(int arr[], int left, int mid, int right) {   int n1 = mid - left + 1;   int n2 = right - mid;   vector<int> L(n1), R(n2);    for (int i = 0; i < n1; i++) L[i] = arr[left + i];   for (int j = 0; j < n2; j++) R[j] = arr[mid + 1 + j];   int i = 0, j = 0, k = left;   while (i < n1 && j < n2) {      if (L[i] <= R[j]) arr[k++] = L[i++];      else arr[k++] = R[j++];   }   while (i < n1) arr[k++] = L[i++];   while (j < n2) arr[k++] = R[j++];}
填写答案