news 2026/4/15 9:33:15

折半查找的核心逻辑是基于“数组有序”的前提,通过不断将查找区间缩小一半来高效定位目标值

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
折半查找的核心逻辑是基于“数组有序”的前提,通过不断将查找区间缩小一半来高效定位目标值

折半查找的核心逻辑是基于“数组有序”的前提,通过不断将查找区间缩小一半来高效定位目标值。其基本步骤如下:

  1. 定义查找范围的边界lowhigh,初始为数组首尾下标。
  2. 在每一步中计算中间位置mid = low + (high - low) // 2(避免整数溢出)。
  3. 比较目标值key与中间元素arr[mid]
    • key == arr[mid],查找成功,返回mid
    • key < arr[mid],说明目标在左半区,更新high = mid - 1
    • key > arr[mid],说明目标在右半区,更新low = mid + 1
  4. 重复上述过程,直到low > high时结束循环,表示未找到,返回-1

两种实现方式

(1)迭代版(Bsearch)
defbsearch(arr,key):low,high=0,len(arr)-1whilelow<=high:mid=low+(high-low)//2ifarr[mid]==key:returnmidelifkey<arr[mid]:high=mid-1else:low=mid+1return-1
  • 使用循环控制流程,空间复杂度为O(1)
  • 更适合大规模数据或对栈空间敏感的环境。
(2)递归版(Bsearch_rec)
defbsearch_rec(arr,key,low,high):iflow>high:return-1mid=low+(high-low)//2ifarr[mid]==key:returnmidelifkey<arr[mid]:returnbsearch_rec(arr,key,low,mid-1)else:returnbsearch_rec(arr,key,mid+1,high)
  • 利用函数调用自身实现分治,代码更简洁易懂。
  • 空间复杂度为O(log n),因递归深度约为 log₂n。

折半查找的特点总结

特性描述
前提条件数组必须有序且支持随机访问
时间复杂度O(log n) —— 显著优于顺序查找的 O(n)
空间复杂度迭代:O(1),递归:O(log n)
适用结构数组等连续存储结构;不适用于链表
动态操作不适合频繁插入/删除的场景(维护有序成本高)

折半查找要求数据必须是有序的,是因为其核心逻辑依赖于通过比较中间元素来判断目标值位于左半部分还是右半部分。这种“决策依据”只有在数据有序的前提下才成立。

详细解释:

假设我们有一个数组arr和一个目标值key,折半查找每次都会取中间元素arr[mid]进行比较:

  • 如果key == arr[mid],查找成功;
  • 如果key < arr[mid],则认为key应该出现在mid左侧 ——但这仅在数组有序时才正确
  • 如果key > arr[mid],则认为key应该出现在mid右侧 —— 同样依赖于顺序排列。
举个例子:

无序数组:[5, 2, 9, 1, 7],我们要找key = 3
中间元素是9,由于3 < 9,算法会去左边[5, 2]查找,但实际上3并不在数组中,即使存在也可能被错误地“跳过”。

而如果是有序数组:[1, 2, 5, 7, 9],中间是53 < 5→ 正确进入左半部分[1, 2],继续查找可得结果或确认不存在。

✅ 所以:只有当数组有序时,“小于中间值就一定在左边,大于就在右边”这一推理才成立,否则查找过程将失去正确性。


此外,有序性还保证了以下几点:

  • 每次都能安全地排除一半的数据,确保时间复杂度为 O(log n);
  • 不会出现遗漏或误判的情况。

类比理解:

就像查字典时,你是按字母顺序翻页的。如果字典的单词被打乱了,你就无法通过“当前词太大”来决定往前翻还是往后翻。


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/14 17:28:05

VoxCPM-1.5-TTS-WEB-UI与Git Commit版本控制协同工作流程

VoxCPM-1.5-TTS-WEB-UI与Git Commit版本控制协同工作流程 在AI大模型快速迭代的今天&#xff0c;一个语音合成系统上线后能不能“稳得住”&#xff0c;往往不只取决于模型本身的质量&#xff0c;更在于背后的工程化能力。你有没有遇到过这样的情况&#xff1a;团队里两个人跑同…

作者头像 李华
网站建设 2026/4/13 10:59:46

学长亲荐!10款一键生成论文工具测评:研究生毕业论文写作全攻略

学长亲荐&#xff01;10款一键生成论文工具测评&#xff1a;研究生毕业论文写作全攻略 2025年学术写作工具测评&#xff1a;为什么你需要这份榜单 在研究生阶段&#xff0c;论文写作不仅是学术能力的体现&#xff0c;更是时间与精力的考验。面对复杂的文献综述、严谨的逻辑构建…

作者头像 李华
网站建设 2026/4/10 10:34:07

深度测评10个AI论文写作软件,MBA论文写作必备!

深度测评10个AI论文写作软件&#xff0c;MBA论文写作必备&#xff01; AI 工具助力论文写作&#xff0c;高效降重成新趋势 在当今学术研究日益数字化的背景下&#xff0c;MBA 学生和研究人员正面临越来越高的论文写作压力。无论是开题报告、文献综述&#xff0c;还是实证分析与…

作者头像 李华
网站建设 2026/4/13 10:36:57

探索DigSILENT PowerFactory中的风储联合系统:蓄电池特性建模与实践

DIgSILENT PowerFactory 风储联合&#xff0c;蓄电池进行特性建模&#xff0c;风储并网无穷大系统&#xff0c;蓄电池特性如下&#xff0c;风电机组采用双闭环DFIG&#xff0c;可以根据风速变化验证蓄电池和风机的联合作用。 有SOC特性在电力系统研究领域&#xff0c;风储联合系…

作者头像 李华
网站建设 2026/4/12 20:13:50

掘金社区热帖:十分钟入门Sonic数字人生成

掘金社区热帖&#xff1a;十分钟入门Sonic数字人生成 在短视频内容爆炸的今天&#xff0c;你是否也遇到过这样的困境&#xff1a;精心写好的脚本&#xff0c;却因为出镜尴尬、配音不搭、剪辑耗时而迟迟无法发布&#xff1f;更别提那些需要多语种切换、24小时轮播的AI客服、虚拟…

作者头像 李华
网站建设 2026/4/10 9:04:11

VoxCPM-1.5-TTS-WEB-UI支持RESTful API接入第三方应用

VoxCPM-1.5-TTS-WEB-UI 支持 RESTful API 接入第三方应用 在智能语音日益渗透日常生活的今天&#xff0c;从车载导航的温柔提示到电商平台的自动通知播报&#xff0c;高质量语音合成已不再是“锦上添花”&#xff0c;而是用户体验的核心环节。然而&#xff0c;许多团队在落地 T…

作者头像 李华