二分查找就是每次把有序数据一分为二,然后和中间数对比。
def search(list_,key):
”’
二分查找
:param list_: 要查找的数据有序列表
:param key: 要查找的关键
:return:key在序列中的索引号
”’
low,high=0,len(list_)-1
while low<high:#如果最小值小于最大值
mid = (low + high) // 2
if list_[mid]<key:
low=mid+1
elif list_[mid]>key:
high=mid-1
else:
return mid
l=[2,5,6,9,10,12,13,18,20,21,22]
print(search(l,13))