美文网首页
二分查找

二分查找

作者: Amica | 来源:发表于2018-08-26 20:58 被阅读1次

二分查找是一种算法,它的输入是一个有序的元素列表。如果要查找的元素包含在列表中,二分查找返回它的位置,否则返回null。

# encoding: utf-8

def binary_search(list,item):
    #通过low和high来跟踪在其中查找的列表部分
    low=0
    high=len(list)-1
    
    #只要范围没有缩小到一个元素就检查中间的元素
    while low<=high:
        mid=int(low+high)
        guess=list[mid]
        
        #如果找到了元素就返回其位置
        if guess==item:
            return mid
        #如果猜的数字大了就更改high的位置
        if guess>item:
            high=mid-1
        #如果猜的数字小了就更改low的位置
        else:
            low=mid+1
    #如果没有指定的元素就返回None
    return None
if __name__ == "__main__":
    my_list=[1,6,9,24,67,88]
    location=binary_search(my_list,67)
    location1=binary_search(my_list,200)
    print("67所在位置为%d"%location)
    print("200所在位置为%s"%location1)

#运行结果:
67所在位置为4
200所在位置为None

相关文章

网友评论

      本文标题:二分查找

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