二分查找

二分查找是一种算法,它的输入是一个有序的元素列表。如果要查找的元素包含在列表中,二分查找返回它的位置,否则返回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
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容