二分查找

1、思想
对于一个有序数列,每次和中间的一位数值进行比较,如果待查找的数字大于中间值则在中间值的上面查找,如果待查找的数字小于中间值则在中间值下面再查找。
2、实现

def binary_search(elem, my_list):
    low = 0
    hight = len(my_list) - 1
    
    while low <= hight:
        middle = (low + hight) / 2
    
        if elem > my_list[middle]:
            low = middle + 1
        elif elem < my_list[middle]:
            hight = middle -1
        else:
            return True
    
    return False
 
if __name__ == '__main__':
    my_list = range(1000)
    print binary_search(9999, my_list)

你可能感兴趣的:(二分查找)