二分查找
def binary_search(alist,item):
low=0
high=len(alist)-1
while low<=high:
mid=(low+high)//2
if item==alist[mid]:
return True
elif item>alist[mid]:
low=mid+1
else:
high=mid-1
return False
alist=[1,2,3,4,8,9]
print(binary_search(alist,7))
通过low,high作为标识进行查找
递归写法
def binary_search(alist,item):
if len(alist)==0:
return False
else:
mid=len(alist)//2
if alist[mid]==item:
return True
elif item>alist[mid]:
return binary_search(alist[mid+1:],item)
else:
return binary_search(alist[:mid],item)
alist=[1,2,3,4,8,9]
search = binary_search(alist, 7)
print(search)
可以看出来,递归程序设计代码简洁,凝练。