[英]"RecursionError: maximum recursion depth exceeded in comparison" in async function
[英]RecursionError: maximum recursion depth exceeded in comparison : Recursive function
我不明白為什么會出現這個最大深度錯誤。 我正在嘗試使用 bst 遞歸方法查找數組中的數字索引,下面是我的代碼
# Binary Search Tree using recursion
def search(arr,target,s,e):
middle = s + (e - s) // 2
if s > e:
return -1
if target == arr[middle]:
return middle
if target < arr[middle]:
return search(arr,target,s,middle-1)
return search(arr,target,s,middle+1)
ARR = [1,2,3,4,5,6,7,8,9,10]
k = search(ARR,9,0,len(ARR) - 1)
print(k)
誰能告訴我代碼塊中發生了什么
錯誤塊:
PS C:\Users\admin\Desktop\DSA> & C:/Users/admin/AppData/Local/Programs/Python/Python310/python.exe c:/Users/admin/Desktop/DSA/recursion/bst.py Traceback (最近一次通話最后一次):文件“c:\Users\admin\Desktop\DSA\recursion\bst.py”,第 20 行,在 k = search(ARR,9,0,len(ARR) - 1) File“ c:\Users\admin\Desktop\DSA\recursion\bst.py",第 16 行,在搜索中
return search(arr,target,s,middle+1) 文件“c:\Users\admin\Desktop\DSA\recursion\bst.py”,第 16 行,在搜索中
return search(arr,target,s,middle+1) 文件“c:\Users\admin\Desktop\DSA\recursion\bst.py”,第 16 行,在搜索中
return search(arr,target,s,middle+1) [上一行重復了 995 次] 文件“c:\Users\admin\Desktop\DSA\recursion\bst.py”,第 7 行,在搜索中
if s > e: RecursionError: 比較時超出了最大遞歸深度
最后一種情況應該是search(arr,target,middle,e)
。
按照您的編碼方式,它總是搜索數組的前半部分,最終達到遞歸限制。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.