您好,欢迎来到爱够旅游网。
搜索
您的当前位置:首页Python的二分查找法

Python的二分查找法

来源:爱够旅游网
#二分查找法
def binary_search(alist, item):
    first = 0

    last = len(alist) - 1

    while first <= last:

        midpoint = (first + last) / 2

        if alist[int(midpoint)] == item:

            return True

        elif item < alist[int(midpoint)]:

            last = midpoint - 1

        else:

            first = midpoint + 1


    return False

testlist = [0, 1, 2, 8, 13, 17, 19, 32, 42, ]

print(binary_search(testlist, 3))

print(binary_search(testlist, 13))

#(递归实现)

def binary_search(alist, item):
    if len(alist) == 0:

        return False

    else:

        midpoint = len(alist) // 2

        if alist[midpoint] == item:

            return True

        else:

            if item < alist[midpoint]:

                return binary_search(alist[:midpoint], item)

            else:

                return binary_search(alist[midpoint + 1:], item)


testlist = [0, 1, 2, 8, 13, 17, 19, 32, 42, ]

print(binary_search(testlist, 3))

print(binary_search(testlist, 13))

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igbc.cn 版权所有 湘ICP备2023023988号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务