我已经为二进制搜索编写了代码。它输出中间值,但在退出函数时不会返回相同的值。
def binarysearch(array,low,high,key):
mid=(low+high)//2
if array[mid]==key:
print ('arrar[mid]: ',array[mid],'mid= ', mid)
return mid
elif key> array[mid]:
binarysearch(array, low+1, high,key)
elif key<array[mid]:
binarysearch(array,low,mid-1,key)
else:
return -1
data=[1,2,3,4,5]
result=binarysearch(data,0,5,5)
print('result=',result)
输出:
arrar[mid]: 5 mid =4
result=None
elif key> array[mid]:
binarysearch(array, low+1, high,key)
应该是
elif key> array[mid]:
binarysearch(array, mid, high,key)