python实现二分查找

来源:互联网 发布:windows系统是多用户 编辑:程序博客网 时间:2024/06/14 20:14

二分查找的优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,二分查找适用于不经常变动而查找频繁的有序表

实现

非递归实现

def binary_search(alist,item):    first = 0    last = len(alist)-1    while first <= last:        midpoint = (first + last)/2        if alist[midpoint] == item:            return True        elif item < alist[midpoint]:            last = midpoint-1        else:            first = midpoint+1    return False

递归实现

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)
原创粉丝点击