1. 二分查找-递归实现

建立数组
a = [1,2,3,4,5,6,7,8,9,10]
###查找目标
b = 3
###左坐标
c = 0
###右坐标
d = len(a)-1

函数搭建
def fun(a,b,c,d):
if a==[]:
print(“该数字不在列表中”)
else:
print(a[c:d+1])
if a[(c+d)//2]>b:
d = (c+d)//2-1
return fun(a,b,c,d)
elif a[(c+d)//2] c= (c+d)//2+1
return fun(a,b,c,d)
else:
return (c+d)//2
###函数调用
fun(a,b,c,d)

2. 二分查找-非递归实现

建立数组
num = [1,2,3,4,5,6,7,8,9,10]
###查找目标
target = 3
###函数搭建
def binarysearch(num,target):
if len(num)==0:
return -1
left = 0
right = len(num)-1
while left<=right:
if num[int((right+left)/2)]==target:
return(int((right+left)/2))
break
elif num[int((right+left)/2)]>target:
right = int((right+left)/2)-1
else:
left = int((right+left)/2)+1
###函数调用
binarysearch(num,target)

3. 二分查找-变体应用