阅读下面 C++ 实现的二分查找代码,下列说法中错误的是 ( )。 
二分查找的核心是区间折半,别光背复杂度,拿到题就动手模拟:每次循环看 mid 怎么算、left 和 right 怎么变,数一数 while 循环体到底执行了几次,就能把四个选项逐个验明正身。
学生最容易掉进两个坑:一是把“调用次数”当成“比较次数”或“递归深度”,以为只要找到目标就是 3 次;二是死记“二分查找通常 3 次”这种模糊结论,不针对具体数组和目标值模拟,导致对 D 选项判断失误。
本题考查《GESP 五级大纲》“算法与程序设计”模块中的二分查找。命题人把这道题放进来,就是要卡住那些只背“二分查找是 O(log n)”却不会动手模拟、一看到选项就凭直觉选的考生——五级算法题里,这种“代码阅读 + 流程模拟”的题型占比很高,但绝大多数人死在不会逐行追踪变量变化上。
二分查找每次将搜索范围减半,仅适用于有序序列。关键观察:mid 计算公式是 (left+right)/2(整数除法),当 right 变成 -1 后,mid 仍可能为 0,循环条件 left<=right 决定何时退出。通法是:对每个选项,写出初始 left、right、mid 值,按循环条件逐步计算,直到 left>right 或找到目标,统计调用次数。记住:二分查找不是固定 3 次,而是由区间长度和目标位置共同决定。
从题库数据看,二分查找共考过 39 题,覆盖 7 个考试级别(2008-2026);逐年分布:2008 年 2 题、2009 年 1 题、2011 年 2 题、2019 年 1 题、2021 年 1 题、2022 年 2 题、2023 年 4 题、2024 年 9 题、2025 年 7 题、2026 年 5 题、null 年 5 题;分赛事:GESP 五级 16 题、GESP 七级 7 题、CSP 入门级 5 题、CSP 提高级 5 题、NOIP 提高组 初赛 3 题、NOIP 普及组 初赛 2 题、GESP 六级 1 题。
数据表明该考点是高频常考内容,尤其 GESP 五级占比最高。未来命题趋势大概率仍是“代码阅读 + 流程模拟”,但形式可能更灵活:例如给出一段带递归的查找代码,或混合了其他数组操作(如先排序再查找),要求考生判断执行次数或返回值。暂无足够依据预测具体题型变化,但建议考生务必掌握逐行模拟的能力,这是应对此类题目的根本。