当前位置: 首页 > 知识库问答 >
问题:

递归错误:比较中超过最大递归深度:递归函数

凌修伟
2023-03-14

我不明白为什么我会得到这个最大深度错误。iam试图使用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

共有1个答案

岳凯康
2023-03-14

最后一种情况应该是搜索(arr,target,middle,e)。

您对其进行编码的方式,它总是搜索数组的前半部分,最终您达到递归限制。

 类似资料:
  • 问题内容: 我使用以下代码解决了Euler项目的问题10,该代码通过强力工作: 这三个功能的工作方式如下: isPrime 检查数字是否为质数; primeList 返回一个列表,其中包含一组在一定范围内且限制为“ n”的素数,并且; sumPrimes 对列表中所有数字的值求和。(不需要最后一个功能,但是我喜欢它的清晰度,特别是对于像我这样的初学者。) 然后,我编写了一个新函数 primeLis

  • 问题内容: 我从星期一开始使用Python进行编程。我很喜欢学习它。但是我一直试图了解如何在tkinter菜单之间切换时避免递归!我确信这是一个非常基本的问题,感谢您宽容我对此主题的无知,但我无法在其他地方找到答案。 我现在正在做的最终是给我错误:RuntimeError:调用Python对象时超出了最大递归深度 这是我目前正在使用的模式。更新:下面的代码现在是完整的隔离副本,再现了我面临的问题!

  • 我对Python很陌生。我写了一个关于返回 x 在排序的重复元素数组 A 中的出现次数的函数: 错误是:运行时错误:超出最大递归深度。有人知道如何解决它吗?

  • 周一开始用Python编程。我喜欢学习它。但是当在tkinter菜单之间切换时,我一直试图理解如何避免递归。我确信这是一个非常基本的问题,我很感激你能容忍我在这个问题上的无知,但是我在别处找不到答案。 我现在所做的是,最终给了我一个错误:RuntimeError:调用Python对象时超出了最大递归深度 这是我目前使用的模式。更新:下面的代码现在是一个完整的、独立的副本,重现了我面临的问题!:D

  • 我正试图从ESPN那里获得一些票房成绩。com并将其放入Pandas DataFrame中。我过去也以同样的方式做过类似的事情,没有任何问题。然而,在这种情况下,当我试图保存DataFrame时,我遇到了这个错误。 RuntimeError:调用Python对象时超出最大递归深度 当我试图将它保存为hdf5表时,也出现了类似的错误。 即使这个代码片段也会给出相同的错误。我很困惑它为什么要这样做?与

  • 我试图在这个简单的类中做getter setter, 看起来很简单明了,但不知何故它不起作用,我错过了什么,帮我找到我出错的理解。 我得到以下错误。