GESP C++ 真题 · 逐题精解
首页C++五级真题 › 2024年3月 › 第8题

GESP 2024年3月 C++五级 单选题 第8题

C++五级单选题2024年3月第8题

所属知识点:查找与二分 难度要求:掌握 考频:—

给定序列:1,3,6,9,17,31,39,52,61,79,81,90,96。使用以下代码进行二分查找查找元素 82 时,需要循环多少次,即最后输出的 times 值为( )。
int binarySearch(const std::vector<int>& arr, int target) {
int left = 0;
int right = arr.size() - 1;
int times = 0;
while (left <= right) {
times ++;
int mid = left + (right - left) / 2;
if (arr[mid] == target) {
cout << times << endl;
return mid;
} else if (arr[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
cout << times << endl;
return -1;
}

正确答案:D

题目解析

对 82 二分查找:mid 依次为 39、79、90、81,共比较 4 次(………

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

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

进入 GESPPASS 开始练习