GESP 七级 · GESP 202606 C++ 七级 第 14 题

选择题 · 答案 B · 考点:二分查找

← 整套速查表 GESP 七级 全部真题

题目

在升序数组中用二分查找第一个大于等于 x 的位置。若当前中点 mid 满足 a[mid] < x,下一步应( )。

答案:B

考点

二分查找 讲解 →二分查找 真题汇总 →

解题思维

仔细审题,明确已知条件和所求目标,运用相关知识点逐项分析。

常见错误

审题时注意题目要求(选正确还是选错误),避免因审题不清失分。涉及代码的题目要逐行分析变量变化。

详细解析(节选)

【考点】二分查找|有序数组|下界定位

【解题思维】 这题考的是二分下界定位的标准流程。看到 a[mid] < x 立刻判定:当前值太小了,不可能满足「≥ x」的要求,答案必定在右半区间。因此直接收窄搜索范围——闭区间左边界右移至 mid + 1,右边界不动,继续二分。这是「找第一个≥ x」问题的核心操作,也是二分下界的通用模板。

【陷阱拆解】 A 项把左边界往 mid - 1 缩,等于主动把答案扔出搜索域,是方向反了;C 项返回 mid 完全荒谬,因为 a[mid] < x,它连合格候选都不是;D 项交换数组元素与目标值毫无意义,还破坏了有序性,属于出题人塞的纯干扰项。最阴险的是 A 的「闭区间右边界变 mid - 1」——换句话是区间整体左移,考生若只记「二分要缩区间」而忽略「往哪边缩」,就会掉进去。

【反命题思维】 若把题面改成「找第一个≤ x」,条件 a[mid] < x 时答案就在左半,正确操作就该是右边界收为 mid。刷到这类题先问自己:目标是在 ≥ 还是 ≤?a[mid] 与目标的大小关系决定了该往哪边收区间,这才是二分下界/上界的本质区别。

同考点真题

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断