您好,欢迎访问一九零五行业门户网

python二分查找算法的递归实现

本文实例讲述了python二分查找算法的递归实现方法。分享给大家供大家参考,具体如下:
这里先提供一段二分查找的代码:
def binarysearch(alist, item): first = 0 last = len(alist)-1 found = false while first<=last and not found: midpoint = (first + last)//2 if alist[midpoint] == item: found = true else: if item < alist[midpoint]: last = midpoint-1 else: first = midpoint+1 return found testlist = [0, 1, 2, 8, 13, 17, 19, 32, 42,] print(binarysearch(testlist, 3)) print(binarysearch(testlist, 13))
近来喜欢递归的简单明了,所以修改成递归的方法:
def binsearch(lst, item): mid = len(lst) //2 found = false if lst[mid] == item: found = true return found if mid == 0: #mid等于0就是找到最后一个元素了。 found = false return found else: if item > lst[mid]: #找后半部分 #print(lst[mid:]) return binsearch(lst[mid:], item) else: return binsearch(lst[:mid], item) #找前半部分
测试通过。
更多python二分查找算法的递归实现。
其它类似信息

推荐信息