二分查找

def binary_search(list,want):
    # 首先确定查找队列的首位,以及中间数的位置
    min = 0
    max = len(list)-1

    #首位不一致说明有中间数
    while min <= max:
        mid = int((min + max) // 2)
        if list[mid] == want:
            return mid
        if list[mid] < want:
            min = mid + 1
        else:
            # list[mid] > want
            max = mid - 1


if __name__ == "__main__":

    list = [1,3,4,5,8,11,23,28,31,33,35,37,46,55]
    index = binary_search(list,31)
    print('查找的索引是{},查找的对应数是{}'.format(index,list[index]))
posted @ 2020-04-01 16:21  ColaIce  阅读(121)  评论(0)    收藏  举报