题目
定义函数,使用二分法查找列表[1,2,3,4,5,6,7,8,9,10]中5的位置,未找到返回False。
分析
二分法查找就是通过不断对半的方法查找区间[a,b]内的数值位置
答案
def binarySearch(L,t):
x=0
low, high = 0, len(L) - 1
while low < high:
mid =int( (low + high)/2 )
if L[mid] > t:
high = mid
elif L[mid] < t:
low = mid +1
else:
return mid
return mid if L[mid-1] == t else False
l = [1,2,3,4,5,6,7,8,9,10]
print( binarySearch(l, 5) )