当前位置: 首页 > news >正文

三分钟带你读懂什么是:二分查找算法

我们先来了解其定义:二分查找算法是一种在有序数组中查找某一特定元素的搜索算法

具体的搜索过程为:

从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。

如果在某一步骤数组为空,则代表找不到。

前面的描述用伪代码表示如下:

""" 二分查找算法伪代码(Python 版本): # 输入:nums 是有序数组,target 为要找的特定元素; # 输出:target 在 nums 中的索引位置,如果找不到则返回 -1; """ def binary_search(nums, target): st = left_bound(nums) # st 表示当前搜索区间的左边界 ed = right_bound(nums) # ed 表示当前搜索区间的右边界 while check(st, ed): mid = middle(st, ed) # 根据左右边界计算中间索引位置 if nums[mid] == target: return mid # 找到特定元素,返回索引位置 else if target < nums[mid]: ed = left(mid) # 在小于中间元素的那一半区间中查找 else if target > nums[mid]: st = right(mid) # 在大于中间元素的那一半区间中查找 return -1 # -1 代表没有在 nums 中找到 target

上面的伪代码中有几个点需要注意,这些地方也是二分查找算法容易出错的细节:

1. 主循环的停止判断条件 check(st, ed)

需要区分 st < ed 还是 st <= ed,这和开区间或是闭区间的选择有关;

2. 中间索引位置的计算公式 middle(st, ed)

当搜索区间的长度是偶数时,需要考虑到 mid 值是中间偏左还是偏右;

3. 二分搜索区间的更新公式 left(mid) 和 right(mid)

搜索区间的更新和开区间或是闭区间的选择有关。

http://www.jsqmd.com/news/796277/

相关文章:

  • 2026年无锡充电桩运营系统深度横评:SaaS服务与社区生态物联解决方案完全指南 - 企业名录优选推荐
  • 2026中文AI对决:Gemini与国产模型谁更强
  • 霍尔定理和最大流算法 入门
  • 别被“AI概念”忽悠了!2026年GEO服务商筛选实录:只看这几点 - 品牌2025
  • 深度解析现代化前端编辑器:5大核心特性构建高效图片编辑体验
  • 理性消费:让瑞祥商联卡中每一分钱都发挥最大价值 - 团团收购物卡回收
  • 2026最新宋氏美学家具/新中式家具生产厂家推荐!国内优质权威榜单发布,广东佛山等地实力品牌优选 - 十大品牌榜
  • FanControl终极指南:免费Windows风扇控制软件完全教程
  • Linux Socket 编程(TCP:socket, bind, listen, accept,connect, write, read;UDP:sendto, recvfrom)
  • 如何高效使用B站字幕下载工具:释放视频学习价值的完整指南
  • 奇点大会闭门报告首曝:AI原生联邦学习系统不是升级,而是重构——基于LLM驱动的元协调器(Meta-Orchestrator)架构图谱(含开源PoC链接)
  • 2026全国监控杆采购选型QA测评:从陕西市场看厂商实力与风险规避 - 深度智识库
  • 机器人实时控制中的VLA模型与延迟优化技术
  • Intel RealSense D435i 标定实战:从工具安装到VINS配置全流程解析
  • 从零到一:基于STM32F1与SPL库的lwIP-2.1.2裸机移植实战(ENC28J60驱动适配)
  • SoC自适应雷达信号处理架构在6G与智能驾驶中的应用
  • AI原生迁移学习落地攻坚手册(2026奇点大会闭门报告首次解禁)
  • 2026年江苏充电桩SaaS服务深度横评:社区生态物联解决方案与资金扶持完全指南 - 企业名录优选推荐
  • 终极Mac电源管理指南:如何用SleeperX彻底解决3大电源痛点
  • 广州外墙清洗行业企业盘点:精准选型指南,避开采购雷区 - 深度智识库
  • 1.7.2 掌握Scala函数 - Scala函数种类
  • .NET开发者集成OpenAI API实战指南:从基础调用到生产部署
  • 别再只用默认端口了!手把手教你用Hydra测试Windows 10 RDP弱口令(附字典生成技巧)
  • WinMD:跨平台存储架构的突破性实现与Windows访问Linux RAID解决方案深度解析
  • 不止 Paperxie!9 款 AI 毕业论文写作工具横评:从选题到终稿,谁才是真正的效率之王?
  • 江西省青蜂环保:丰城白蚁防治选哪家 - LYL仔仔
  • Gemini长上下文重塑RAG架构
  • Oracle数据库中的Java概述
  • FileZilla中文乱码终结指南:从字符集原理到一键修复
  • ICC II 布线优化实战:从 route_auto 到 route_opt 的全流程解析