python实现二分查找法
def binary_search(ls,target):
low=0
high=len(ls)-1 #-1是为了target大于ls范围时,下标溢出
while low <= high:
mid = int((low+high)/2)
if ls[mid] == target:
return mid
elif ls[mid] < target:
low = mid+1
else:
high = mid-1
return -1
if __name__ == '__main__':
ls=[x for x in range(100)]
target1=45
target2=-1
target3=100
index1=binary_search(ls,target1)
index2 = binary_search(ls, target2)
index3 = binary_search(ls, target3)
print (index1,index2,index3)