这个 python 二进制搜索代码有什么问题,我收到索引错误
What is wrong with this python binary search code, im getting an index error
我一直收到索引溢出错误。我错过了什么吗?
我一次又一次地检查我的数组长度,但我没有看到我在哪里访问了一个不存在的值
def binary_search_helper(arr,val,low,high):
mid = low + ((low+high)//2)
if low >= high:
return("Not F")
elif val==arr[mid] :
return (arr[mid])
elif val<=arr[mid]:
return( binary_search_helper(arr, val, low, mid-1))
else:
return( binary_search_helper(arr, val, mid+1, high))
def binary_search(arr,val):
return binary_search_helper(arr, val, 0, len(arr)-1)
if __name__=="__main__":
arr=[0,1,2,3,4,5]
val=3
ans= binary_search(arr,val)
print(ans)
有几个错误,你可以看看我这里改了什么:
def binary_search_helper(arr,val,low,high):
mid = (low+high)//2
if val==arr[mid] :
return (arr[mid])
elif low >= high:
return("Not F")
elif val<=arr[mid]:
return( binary_search_helper(arr, val, low, mid-1))
else:
return( binary_search_helper(arr, val, mid+1, high))
我一直收到索引溢出错误。我错过了什么吗? 我一次又一次地检查我的数组长度,但我没有看到我在哪里访问了一个不存在的值
def binary_search_helper(arr,val,low,high):
mid = low + ((low+high)//2)
if low >= high:
return("Not F")
elif val==arr[mid] :
return (arr[mid])
elif val<=arr[mid]:
return( binary_search_helper(arr, val, low, mid-1))
else:
return( binary_search_helper(arr, val, mid+1, high))
def binary_search(arr,val):
return binary_search_helper(arr, val, 0, len(arr)-1)
if __name__=="__main__":
arr=[0,1,2,3,4,5]
val=3
ans= binary_search(arr,val)
print(ans)
有几个错误,你可以看看我这里改了什么:
def binary_search_helper(arr,val,low,high):
mid = (low+high)//2
if val==arr[mid] :
return (arr[mid])
elif low >= high:
return("Not F")
elif val<=arr[mid]:
return( binary_search_helper(arr, val, low, mid-1))
else:
return( binary_search_helper(arr, val, mid+1, high))