GESP C++ 真题 · 逐题精解
首页C++五级真题 › 2025年6月 › 第4题

GESP 2025年6月 C++五级 判断题 第4题

C++五级判断题2025年6月第4题

所属知识点:分治与递归 难度要求:掌握 考频:—

下 的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);
}

正确答案:错误(×)

题目解析

错。归并排序中 merge() 会被递归多次调用,不止一次,故 HERE 会………

完整解析为会员内容二级及以上的逐题精讲需开通 VIP。一级解析全部免费。前往 GESPPASS 解锁

想系统刷完 GESP C++ 1~8 级真题,并查看每道题的逐题精讲?

进入 GESPPASS 开始练习