首页 > 编程语言 > 详细

python-实现二分查找

时间:2017-09-17 01:06:19      阅读:354      评论:0      收藏:0      [点我收藏+]
# encoding=utf-8


def binary_search(alist, item):
    """二分查找 非递归方式"""
    n = len(alist)
    start = 0
    end = n-1

    while start <= end:
        mid = (start + end) // 2
        if item == alist[mid]:
            return True
        elif item < alist[mid]:
            end = mid - 1
        elif item > alist[mid]:
            start = mid + 1

    return False


def binary_search2(alist, item):
    """二分查找 递归方式"""
    n = len(alist)
    if 0 == n:
        return False
    mid = n // 2
    if item == alist[mid]:
        return True
    elif item < alist[mid]:
        return binary_search2(alist[:mid], item)
    else:
        return binary_search2(alist[mid+1:], item)


if __name__ == __main__:
    li = [17, 20, 26, 31, 44, 54, 55, 77, 93]
    # print(binary_search(li, 55))
    # print(binary_search(li, 100))
    print(binary_search2(li, 55))
    print(binary_search2(li, 100))

 

python-实现二分查找

原文:http://www.cnblogs.com/wgDream/p/7533605.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!