二分查找:

首先确定找到中间那个数字的地址,

判断中间值的地址的值和我们输入的值是不是相同的,相同输出

def binary_search(list, number):
    low_address = 0
    high_address = len(list) - 1
    
    while(low_address <= high_address):
        mid_address = (low_address + high_address)/2
        true_number = list[mid_address]
        
        if true_number == number:
            return mid_address
        
        if true_number > number:
            high_address = mid_address - 1
        else:
            low_address = mid_address + 1
            
if __name__ == '__main__':
    list = [1,2,3,4,5,6,7,8,9,10]
    print(binary_search(list, 2))

 

不相同,如果输入值大于中间值则low = mid + 1,如果输入值小于中间值则high = mid - 1

posted on 2018-10-26 17:32  jjcc  阅读(130)  评论(0编辑  收藏  举报