Python二分查找是一种快速查找有序数组中的元素的方法,它的基本思想是:选择数组中间的元素作为比较对象;比较中间元素与目标元素的大小;如果中间元素比目标元素大,则继续查找中间元素左边的子数组;如果中间元素比目标元素小,则继续查找中间元素右边的子数组;如果中间元素等于目标元素,则查找成功,返回相应的索引。
Python二分查找的使用方法如下:
# 二分查找函数
def binary_search(list, item):
# low和high用于跟踪要在其中查找的列表部分
low = 0
high = len(list)-1
# 只要范围没有缩小到只包含一个元素,就持续查找
while low <= high:
# 检查中间元素
mid = (low + high) // 2
guess = list[mid]
# 匹配则返回索引
if guess == item:
return mid
# 猜的数字大了,把高位调低
if guess > item:
high = mid - 1
# 猜的数字小了,把低位调高
else:
low = mid + 1
# 没有找到元素
return None
# 测试
my_list = [1, 3, 5, 7, 9]
print(binary_search(my_list, 3)) # 输出 1
print(binary_search(my_list, -1)) # 输出 None
以上是Python二分查找的使用方法,它是一种非常有效的查找有序数组中的元素的方法。