在上一篇文章中介绍了二分法查找,这里是又一次二分法查找方式,与之前不同的是,这次只能判断是否存在,但是很难确定具体位置!!
lst = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]
def func(ls,n):
left = 0
right = len(ls) - 1
if left <= right:
middle = (left + right)//2
if n < ls[middle]:
return func(ls[:middle],n)
elif n > ls[middle]:
return func(ls[middle+1:],n)
else:
print("该数存在!")
else:
print("该数不存在!!")
func(lst,12)
#这里只能判断该数是否存在,没法通过索引判断位置,因为原列表做了切片!