def binary_search(data,target,low,high):
# low和high是下标
# num用来统计运行了多少次
global num
if(low > high):
print("low值大于high值,错误")
return False
else:
# //整除
mid = (low+high)//2
if target == data[mid]:
num = num + 1
return mid
elif target > data[mid]:
num = num + 1
return binary_search(data,target,mid+1,high)
elif target < data[mid]:
num = num + 1
return binary_search(data,target,low,mid-1)
li = [0,1,2,3,4,5,6,7,8,9]
num = 0
print(binary_search(li,9,0,9))
print(num)
二分法找前面的或许不如意
但是对于找整体的代码的平均效率会高一些