一、应用场景:在有序的序列里面查找是否有目标值,如果是无序的序列,二分查找是不可用的
二、逻辑:每查找一次就排除一半的数
三、代码实现
def binarySearch(arr,target):
start = 0
end=len(arr)
while start <= end:
#print(start,end)
mid = (start+end)//2
#print(mid)
if arr[mid]==target: #如果相等就结束程序返回True
return True
elif arr[mid]<target: #如果中间数小于目标值,那么下次在mid+1和len(arr)之间找
start = mid + 1
else:
end = mid - 1
return False #如果循环完仍没有找到目标值就返回False
print(binarySearch([5,9,11,22,56,88,122,234],88))