测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A23845. 下面 merge_sort 函数试图实现归并排序算法,横线处应该填入的是( )。#include <vector> using namespace std; void merge_sort(vector<int> &arr, int left, int right) { if (right - left <= 1) return; int mid = (left + right) / 2; me…

单选题 困难

题目描述

下面 merge_sort 函数试图实现归并排序算法,横线处应该填入的是(    )。

#include <vector>
using namespace std;
void merge_sort(vector<int> &arr, int left, int right) {
    if (right - left <= 1)
        return;

    int mid = (left + right) / 2;
    merge_sort(________); // 在此处填入选项
    merge_sort(________); // 在此处填入选项

    vector<int> temp(right - left);
    int i = left, j = mid, k = 0;
    while (i < mid && j < right)
        if (arr[i] <= arr[j])
            temp[k++] = arr[i++];
        else
            temp[k++] = arr[j++];
    while (i < mid)
        temp[k++] = arr[i++];
    while (j < right)
        temp[k++] = arr[j++];
    for (i = left, k = 0; i < right; ++i, ++k)
        arr[i] = temp[k];
}

选项(单选)

上一题 下一题