数据结构:二分查找python(二)
思路:之前我们要循环,不断改变区间来求中间元素位置来实现目标,现在我们使用递归的思想来解决这个
当数组为空,我们应该返回false,其它情况,进入主要部分
当中间元素为查找值时,直接返回true
当中间元素大于查找值时,我们让alist[:n]进入递归
当中间元素小于查找值时,我们让alist[n+1:]进入递归
代码如下:
#coding:utf-8
#递归的思想
def binary_sort(alist,item):
if alist==[]:
return False
else:
start=0
last=len(alist)
n=(start+last)//2
if alist[n]==item:
return True
elif alist[n]>item:
return binary_sort(alist[:n],item)
else:
return binary_sort(alist[n+1:],item)
return False
a=[6,53,61,75,83,96,112,253,960,1006]
print(binary_sort(a,10))
print(binary_sort(a,960))
print(binary_sort(a,53))
结果:

浙公网安备 33010602011771号