题目
定义函数,使用二分法查找列表[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) )