python 数据结构之二分查找的递归和普通实现
Posted kailicard
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 数据结构之二分查找的递归和普通实现相关的知识,希望对你有一定的参考价值。
二分查找就是待查找的列表进行分半搜索
如下所示
二分查找普通实现:
def erfen(alist, item): start = 0 end = len(alist) - 1 while start <= end: n = int((start + end) / 2) if alist[n] == item: return True elif alist[n] > item: end = n - 1 else: start = n + 1 return False alist = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] print(erfen(alist,10)) print(erfen(alist, 3))
递归实现:
#import sys #sys.setrecursionlimit(1000000) """解决maximum recursion depth exceeded error """ def erfen(alist,item): if len(alist) == 0: return False else: mid=int(len(alist)/2) if alist[mid] == item : return True elif item < alist[mid]: return erfen(alist[:mid],item) else : return erfen(alist[mid+1:],item) alist = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] print(erfen(alist,10)) print(erfen(alist, 3))
以上是关于python 数据结构之二分查找的递归和普通实现的主要内容,如果未能解决你的问题,请参考以下文章