二分查找python
二分查找:从有序列表的初始候选区li[0:n]开始,通过对待查找的值与候选区中间值的比较,可以使候选区减少一半。
代码实现:
# 二分查找 双闭区间 def binary_search(li, val): left = 0 # 列表左下标 right = len(li) - 1 # 列表右下标 while left <= right: # 候选区有值 mid = (left + right) // 2 # 中间下标 if li[mid] == val: return mid elif li[mid] > val: # mid 在待查找的值右边 right = mid - 1 else: # mid 在待查找的值左边 left = mid + 1 else: return None

浙公网安备 33010602011771号