【发布时间】:2012-03-15 10:20:07
【问题描述】:
我的算法需要使用比默认允许更多的堆栈空间。我是否必须增加每台机器上的堆栈空间,或者有没有办法将它包含在类中以便它可以在每台机器上顺利运行。
【问题讨论】:
-
我会改变算法,这样它就不会使用太多的堆栈空间。即使在 C 语言中,您也无法增加正在运行的程序的堆栈大小。
-
@Peter Lawrey - 该算法涉及深度优先搜索,这就是为什么如此密集,但我现在会尝试迭代地进行......
-
迭代地做这件事并不总是那么容易,但如果你能做到,就不会有这个问题。你可能会发现你可以根据你正在做的事情来减少递归的深度。例如你可以总结一个列表 - >
list.get(0) + sum(list.subList(1, list.size())深度为 list.size() 或sum(list.subList(0, list.size()/2)) + sum(list.subList(list.size()/2, list.size()))深度为 log2(list.size())