欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

二分查找的python实现

程序员文章站 2022-03-14 22:46:27
...

二分查找(折半查找)

条件:线性表必须采用顺序存储,且关键码有序
原理:在有序表中取中间记录作为比较对象,若给定值与中间记录的关键字相等则查找成功
若更定值小于中间记录的关键字,则在中间记录的左半区继续查找
若给定值大于中间记录的关键字,则在中间记录的右半区继续查找

……
不断重复上述过程,直到查找成功,或所有查找区域无记录,查找失败为止

……

#!/usr/bin/env python
def Binary_Search(L,key):
    low=0
    high=len(L)-1
    while high>=low:
        mid=(high+low)/2
        if L[mid]>key:
            high=mid-1
        elif L[mid]<key:
            low=mid+1
        else:
            return mid
    else:
        return "no exist"

if __name__ == '__main__':
    L=[0,1,16,24,35,47,59,62,73,88,99]
    print Binary_Search(L,62)