【Python 训练营】N_16 二分法查找

题目

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

你可能感兴趣的:(Python,训练营,算法,python)