二分查找

2018-09-01  本文已影响0人  MkTom
def search(li, item):
    n = len(li)
    if n == 0:
        return False
    # 记录中间位置
    mid = n//2
    # 比较中间位置和要找的数据
    if item == li[mid]:
        return True
    elif item > li[mid]: # 正序 往右找
        return search(li[mid+1:], item)
    else:
        return search(li[:mid], item)

if __name__ == '__main__':
    l = [1,2,3,4,5,6]
    print(search(l, 1))
    print(search(l, 3))
    print(search(l, 6))
    print(search(l, 8))

    # 时间复杂度:O(logn)
上一篇 下一篇

猜你喜欢

热点阅读