【发布时间】:2021-08-17 23:43:39
【问题描述】:
我不断收到索引溢出错误。我错过了什么吗? 我一次又一次地检查我的数组长度,但我没有看到我在哪里访问了一个不存在的值
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)
【问题讨论】:
-
你能分享完整的堆栈跟踪吗?
-
是拼写错误还是您将 return 作为函数调用?
-
第 26 行,在
ans= binary_search(arr,val) 文件“C:\Users\Sanket\AppData\Local\Programs\Python\Python39\binry.py”,第 19 行,在 binary_search 返回 binary_search_helper(arr, val, 0, len(arr)-1) 文件“C:\Users\Sanket\AppData\Local\Programs\Python\Python39\binry.py”,第 15 行,在 binary_search_helper 返回(binary_search_helper (arr, val, mid+1, high)) 文件“C:\Users\Sanket\AppData\Local\Programs\Python\Python39\binry.py”,第 8 行,在 binary_search_helper elif val==arr[mid] 中: IndexError:列表索引超出范围>>>
标签: python arrays binary-search