美文网首页
二分查找

二分查找

作者: MkTom | 来源:发表于2018-09-01 20:16 被阅读0次
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)

相关文章

网友评论

      本文标题:二分查找

      本文链接:https://www.haomeiwen.com/subject/eyguwftx.html