GESP 五级 · GESP 202403 C++ 五级 第 18 题

判断题 · 答案 A · 考点:二分查找

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

题目

二分查找要求被搜索的序列是有序的,否则无法保证正确性。

答案:A

考点

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

解题思维

二分查找每次将搜索范围减半,仅适用于有序序列。注意边界条件的处理(左闭右开或左闭右闭)。

常见错误

二分查找的边界条件极易出错。建议统一使用左闭右闭[left,right]或左闭右开[left,right),每次循环都要缩小范围。

详细解析(节选)

【考点】二分查找前提条件|有序序列要求|选择题陷阱

1. 考纲定位 本题考查《GESP 大纲》二级"算法基础"中的二分查找模块。命题人专门卡住考生对"算法前提条件"的敏感度——很多学生背了二分查找的写法,却忽视它必须建立在有序数组上,这是算法正确性的基石而非锦上添花。

2. 解题思维 看到这句话先想:二分的核心逻辑是每次折半区间,取中间值与目标比较来决定左/右半区。如果序列无序,中间值完全失去比较意义,折半就变成瞎蒙,复杂度从 O(log n) 直接崩塌到 O(n)。因此"有序"不是加分项,而是必要条件——没有它,二分算法的正确性证明中的单调性假设全部失效。

3. 陷阱拆解

4. 反命题思维 如果改成"若序列无序,则无法使用二分查找",答案不变;若改成"若序列无序,但允许先排序再二分",答案变 B。刷到类似题,先问自己"命题人想考我什么":是在考算法前提条件,还是在考预处理操作?

同考点真题

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