实现二分查找的前提,是将序列首先经过排序,排序之后,进行二分查找:
首先找到首元素和尾元素,然后找到中间元素,
代码如下:
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:
right = mid-1
else:
left = mid+1
else:
return None
li = [1,2,3,4,5,6,7,8,9]
print(binary_search(li,3))
2