GESP 五级 · GESP 202412 C++ 五级 第 23 题

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

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

题目

二分查找仅适用于数组而不适合链表,因为二分查找需要跳跃式访问元素,链表中执行跳跃式访问的效率低。

答案:A

考点

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

解题思维

链表不支持随机访问,不能进行二分查找。二分查找要求数据结构支持O(1)的随机访问(如数组)。

常见错误

分析复杂度时注意外层循环和内层循环的关联。例如内外两层都到n的循环不一定是O(n²),要看内层是否每次都在缩小。

详细解析(节选)

【考点】数组随机访问|链表顺序访问|二分查找前提

🎯 考纲定位:本题出自 GESP 五级数据结构模块,卡住的是"数据结构特性决定算法适用性"这一底层逻辑——考生只背二分查找代码,却忽略它依赖数组下标 O(1) 访问,链表只能顺序遍历,导致 O(n) 开销,直接碾压二分查找的 O(log n) 优势。

🧠 解题思维:看到"二分查找"先想"随机访问"——只有数组支持 O(1) 下标定位,链表只能顺序遍历 O(n) 步。命题人故意混淆"查找效率"与"结构特性",考生若只记"二分快"而忽略"链表无法跳跃",就会误判。通法:任何算法适用性判断,先拆解其核心操作(如二分需中点),再对照数据结构特性(数组有下标,链表无)。

🪤 陷阱拆解:选项 B 的陷阱是"效率低≠不适合"。命题人利用考生对"算法复杂度"的模糊认知,故意用"效率低"偷换"不可行"。若考生只答"二分在链表上能实现,只是慢",就掉进"部分正确"的语义陷阱——题目明确问"仅适用于...不适合",这是绝对化表述,必须严格匹配。

🔄 反命题思维:若把"链表"换成"支持双指针的数组",二分仍适用;若把"二分"换成"线性查找",链表反而更优;若把"跳跃访问"换成"顺序访问",题干直接矛盾。刷到类似题先问"命题人想考我什么"——是考算法复杂度,还是数据结构特性?本题显然考特性。

同考点真题

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