news 2026/5/11 14:24:36

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
三分钟带你读懂什么是:二分查找算法

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

具体的搜索过程为:

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

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

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

""" 二分查找算法伪代码(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)

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

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

ZonyLrcToolsX:一站式歌词下载完整解决方案

ZonyLrcToolsX&#xff1a;一站式歌词下载完整解决方案 【免费下载链接】ZonyLrcToolsX ZonyLrcToolsX 是一个能够方便地下载歌词的小软件。 项目地址: https://gitcode.com/gh_mirrors/zo/ZonyLrcToolsX ZonyLrcToolsX 是一款功能强大的跨平台歌词下载工具&#xff0c;…

作者头像 李华
网站建设 2026/5/11 14:20:33

新手必看:用Arduino驱动LED灯带,串联并联到底怎么选?(附电路图)

Arduino驱动LED灯带实战指南&#xff1a;串联与并联的智能选择 第一次点亮LED灯带时的兴奋感&#xff0c;是每个电子爱好者都难忘的体验。但当你从简单的单颗LED转向控制整条灯带时&#xff0c;电路设计的选择突然变得复杂起来——串联还是并联&#xff1f;这个问题困扰着无数刚…

作者头像 李华
网站建设 2026/5/11 14:19:34

Unitree GO2 ROS2系统架构深度解析与智能导航实现

Unitree GO2 ROS2系统架构深度解析与智能导航实现 【免费下载链接】go2_ros2_sdk Unofficial ROS2 SDK support for Unitree GO2 AIR/PRO/EDU 项目地址: https://gitcode.com/gh_mirrors/go/go2_ros2_sdk 本文深入探讨Unitree GO2 ROS2 SDK的架构设计与实现原理&#xf…

作者头像 李华
网站建设 2026/5/11 14:18:32

.NET开发者集成OpenAI API实战指南:从基础调用到生产部署

1. 项目概述&#xff1a;一个.NET开发者的OpenAI API集成利器 如果你是一名.NET开发者&#xff0c;最近想在自己的C#项目里集成ChatGPT、DALLE或者Whisper这些强大的AI能力&#xff0c;那么你很可能已经搜到了这个项目&#xff1a; OkGoDoIt/OpenAI-API-dotnet 。这不是一个简…

作者头像 李华
网站建设 2026/5/11 14:15:55

终极免费风扇控制指南:如何用FanControl彻底解决电脑散热噪音

终极免费风扇控制指南&#xff1a;如何用FanControl彻底解决电脑散热噪音 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Tren…

作者头像 李华