二分查找适用于对无序数组和有序数组的查找。
仔细审题,明确已知条件和所求目标,运用相关知识点逐项分析。
审题时注意题目要求(选正确还是选错误),避免因审题不清失分。涉及代码的题目要逐行分析变量变化。
【考点】二分查找原理|有序性要求|算法适用条件
1. 考纲定位 本题直击GESP五级“算法与数据结构”模块核心考点。命题人专门设此题,就是卡住那些“凭直觉做题”的考生——以为搜索算法都能用在无序数据上,结果在排序题里栽跟头。
2. 解题思维 核心逻辑链:二分查找的本质是"每次比较后,根据大小关系排除一半区间"。这要求数据必须满足有序性(升序或降序)。若数组无序,取中间值比较后无法确定目标在左半还是右半,算法必然失效。因此,题目断言"适用于无序数组"是根本性错误。
3. 陷阱拆解 错误选项A(正确)的陷阱在于偷换概念。命题人利用的是"搜索"的广义印象——学生容易把"二分查找"和"线性扫描"混淆,觉得只要找到就行。但二分查找对"有序"有绝对硬要求。最阴险的细节是题干中"适用于...和..."的并列结构,暗示两者皆可,实则只有后者成立。
4. 反命题思维 若把题干改为"二分查找适用于任意数组",答案应立即反转;若强调"升序存储时可用",则选项A成立。刷到此类题,先问自己:这道题到底想让我回忆算法的先决条件,还是只是考我"找"这个动作本身?