二分查找-python实现

2019-04-08  本文已影响0人  路人乙yh
def binary_search(alist, num):
    pos = None
    head = 0
    tail = len(alist)
    while tail - head > 1:
        mid = (head + tail)// 2
        if num == alist[mid]:
            pos = mid
            break
        elif num > alist[mid]:
            head = mid + 1
        elif num < alist[mid]:
            tail = mid
    else:
        if alist[head] == num:
            pos = head
        else:
            pos = -1
    
    return pos

if __name__ == '__main__':
    ll = [1,33,65,68,77,1054,666,1024]
    binary_search(ll, 1)
上一篇 下一篇

猜你喜欢

热点阅读