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

A27060. 下面的C++代码实现归并排序。代码在执行时,将输出一次 HERE 字符串,因为merge()函数仅被调用一次。( )void merge(std::vector<int>& arr, int left, int mid, int right){ std::vector<int>temp(right-left+1); int i= left; int j= mid + 1; int k =0; w…

判断题 困难

题目描述

下面的C++代码实现归并排序。代码在执行时,将输出一次 HERE 字符串,因为merge()函数仅被调用一次。(    )

void merge(std::vector<int>& arr, int left, int mid, int right){
    std::vector<int>temp(right-left+1);

    int i= left;
    int j= mid + 1;
    int 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(int p=0;p<k; ++p){
        arr[left + p]= temp[p];
    }
}
void mergeSort(std::vector<int>& arr, int left, int right){
    if(left >= right){
        return;
    }

    int mid=left+(right-left)/2;

    mergeSort(arr,left,mid);
    mergesort(arr, mid +1,right);

    std::cout << "HERE";
    merge(arr,left, mid,right);
}

选项(单选)

上一题 下一题