Python实现二分查找(折半查找)算法
二分查找算法是一种高效的查找方法,也被称为折半查找。它的核心思想是利用有序数组这个前提,将待查找区间不断缩小,最终找到目标元素。二分查找算法时间复杂度为 O(log n),对于大规模数据查找非常高效。
以下是Python实现二分查找算法的源代码:
def binary_search(arr, left, right, target):
"""
二分查找算法
:param arr: 待查找数组
:param left: 左边界
:param right: 右边界
:param target: 查找目标
:return: 目标元素在数组中的下标,如果不存在则返回-1
"""
if left > right:
return -1
mid = (left + right) // 2
if arr[mid] == target:
return mid
elif arr[mid] > target:
# 在左侧继续查找
return binary_search(arr, left, mid - 1, target)
else:
# 在右侧继续查找
return binary_search(arr, mid + 1, right, target)
上述代码实现了一个递归的二分查找算法。首先判断左右边界是否重合,如果已经重合则表示查找区间为空,返回-1表示未找到目标元素。否则,取中间元素,如果目标元素等于中间元素,则直接返回中间元素下标
本文介绍了二分查找(折半查找)算法的基本概念及其Python实现。通过递归方式,利用有序数组特性缩小查找范围,达到O(log n)的时间复杂度。文中还提供了测试示例,展示了如何在有序数组中查找元素。
订阅专栏 解锁全文
算法&spm=1001.2101.3001.5002&articleId=131014976&d=1&t=3&u=2734dfc2065c483fab187225b36342e9)
683

被折叠的 条评论
为什么被折叠?



