我正在实现深度优先搜索算法,以获得具有大量节点(超过800000个)的图的强连通组件。你知道吗
运行时,出现以下错误:
RecursionError: maximum recursion depth exceeded in comparison
为了解决这个问题,我使用了^{
基于一个快速的web搜索(for example),我认为它的空闲是因为在递归通过这么多节点时超出了内存限制。你知道吗
对于numNodes=20000,sys.setrecursionlimit(3000)
起作用
对于numNodes=40000,sys.setrecursionlimit(5000)
起作用
对于numNodes=80000,sys.setrecursionlimit(5000)
重新启动空闲。(注意,这里不显示RecursionError,只重新启动IDLE)
怀疑:我可以为我的平台设置的limit
对于sys.setrecursionlimit(limit)
的最大值是多少?你知道吗
更新:关于堆栈溢出的其他类似问题询问如何更改值或最大递归深度是多少。我需要了解“极限”的最大可能值是多少。sys.getrecursionlimit()
将给出当前设置的任何“限制”。你知道吗
您已经找到了问题的答案,但是对于如何绕过递归限制,您仍然没有答案。你知道吗
简单的方法是维护自己的堆栈。可以这样做的深度优先。你知道吗
在这种形式中,从DFS切换到BFS需要从堆栈切换到队列。在Python中这很简单:
相关问题 更多 >
编程相关推荐