算法学习笔记一一二分查找
什么是二分查找
二分查找也叫折半查找,是在有序数组查找特定元素的算法。算法的时间复杂度为O(logn)。
算法原理
- 定义一个有序数组, 初始化left数组第一个元素序号,right为数组最后一个元素序号,middle为left和right中间元素序号。
- 首先将要查找的元素val与list[middle]比较,若相等返回middle。
- 若val大于list[middle],则说明要查找的元素在middle右半边,对右半部分进行查找。left = middle + 1
- 若val小于list[middle],则说明要查找的元素在middle左半边,对左半部分进行查找。right = middle + 1
- 重复上述步骤,知道left < right (查找失败,数组中无此元素)。
示例代码(python)
def binary_search(list, val):
left = 0 # 数组的第一个元素
right = len(list) - 1 # 数组的最后一个元素
while left <= right:
middle = (left + right) // 2 # 向下取整
if val == list[middle]:
return middle
elif val > list[middle]:
left = middle + 1
elif val < list[middle]:
right = middle - 1
return -1
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义