下面 merge_sort 归并排序中,两处递归调用横线应填入(合并区间为 [left,mid) 与 [mid,right)):
void merge_sort(vector<int> & arr, int left, int right) {
if (right - left <= 1) return;
int mid = (left + right) / 2;
merge_sort(________); // 横线1
merge_sort(________); // 横线2
// 合并 [left,mid) 与 [mid,right): int i = left, j = mid, k = 0; ...
}
- A. arr, left, mid ;arr, mid, right
- B. arr, left, mid + 1 ;arr, mid + 1, right
- C. arr, left, mid ;arr, mid + 1, right
- D. arr, left, mid + 1 ;arr, mid + 1, right + 1
正确答案:A