def linear_search(li, val):
for index, v in enumerate(li):
if v == val:
return index
return None
def binary_search(li, val):
left, right = 0, len(li) - 1
# 候选区有值
while left <= right:
mid = (left + right) // 2
if li[mid] == val:
return mid
# 待查找的值在 mid 左侧
elif li[mid] > val:
right = mid - 1
# 待查找的值在 mid 右侧
else:
left = mid + 1
return None
li = [1,2,3,4,5,6,7,8,9]
print(binary_search(li, 3))