GESP 五级 · GESP 202512 C++ 五级 第 20 题

判断题 · 答案 A · 考点:二分查找、算法、时间复杂度分析

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

题目

二分查找仅适用于有序数据。若输入数据无序,当仅进行一次查找时,为了使用二分而排序通常不划算。

答案:A

考点

二分查找 讲解 →二分查找 真题汇总 →算法时间复杂度分析

解题思维

比较不同排序算法的核心区别:冒泡(相邻交换)、选择(选最值)、插入(插入有序序列)、归并(分治合并)、快排(划分递归)。

常见错误

排序稳定性指相等元素排序后相对顺序是否改变。稳定:冒泡、插入、归并。不稳定:选择、快排、堆排。

详细解析(节选)

【考点】二分查找|排序算法|时间复杂度

考纲定位:本题考查《GESP 考试大纲》五级“数据结构与算法”模块的复合应用。命题人卡住的是考生对二分查找适用条件的机械记忆——许多学生只背“二分需有序”,却忽略排序本身需 O(n log n) 时间,而单次查找 O(log n) 已足够快,排序反而更慢。

解题思维:看到“仅进行一次查找”先锁定比较次数:直接扫描 O(n),二分 O(log n)。再想排序代价:无论冒泡、快排、堆排,最典型都是 O(n log n)。因此排序后二分总耗时 O(n log n) 远大于直接扫描 O(n),排序不划算。通法:任何“为单次查找排序”的题,先算排序时间,再与查找时间对比,若排序时间 > 查找时间则排序必亏。

陷阱拆解:错项 B 通常源于混淆“有序才能二分”与“排序必须做”——命题人利用“二分需有序”的条件,却偷换概念把“需有序”等同于“必须排序”,忽略已有有序数据的情况。另一陷阱是绝对化表述“通常不划算”,若考生只记结论而不理解复杂度权衡,就会误判边界情况(如数组已部分有序、数据量极小等)。

反命题思维:若把题干改为“在已知数据无序但允许多次查找时,是否应排序?”,答案会翻转:当查找次数 > n/log n 时排序反而划算。刷到类似题先问:命题人想考我“排序与查找的复杂度权衡”还是“二分适用条件”?

同考点真题

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