arr_list = [5,7,11,22,27,33,39,52,58]
def binary_search(number,left,right):
if left <= right:
middle = (left + right) // 2
if number < arr_list[middle]:
right = middle - 1
elif number > arr_list[middle]:
left = middle + 1
else:
return middle
return binary_search(number,left,right)
else:
return -1
print(binary_search(11,0,len(arr_list)-1))
注:建立一个数组,先定义一个函数binary_search
内容就是二分法查找;if和elif的条件成立则修改right和left的值然后return binary,然后进行递归,如果else满足return middle,函数值就是middle
注意顺序执行完if语句后执行return语句
如果找到目标值则会返回middle的值然后直接退出,不会在递归。