二分法搜索
学习来源:b站 python分享站
二分法搜索代码如下:
def binary_search(li, val): # left right mid 都是索引值
left = 0
right = len(li) - 1
while left <= right:
mid = (left + right) // 2
if li[mid] == val: # 直接找到,返回
return mid
elif li[mid] > val: # 要找的值在left和mid之间
right = mid - 1 # right移到mid左边
else: # 要找的值在mid和right之间
left = mid + 1 # left移到mid右边
else:
return None
li = [4, 5, 2, 9, 3, 6, 7, 8]
print(binary_search(li, 5))