0

我正在做一个算法课,我正在构建Kosaraju 算法的实现作为作业的一部分。

我有几个小数据集,其中算法返回正确的结果并且性能良好。但是,当我尝试我的家庭作业时,它有 5,105,043 个边和 875,714 个节点,我得到一个 System.StackOverflowException,这似乎是因为递归太多。

然而,这个递归是解决这个问题所必需的。那么我要问的是有没有办法配置.Net 以允许更多递归?

4

1 回答 1

3

那么我要问的是有没有办法配置.Net 以允许更多递归?

递归限制基于为当前线程分配的堆栈大小。这可以通过程序的 editbin /stack 进行更改,或者在线程构建时为特定线程进行编辑。

话虽如此,任何递归算法都可以改为使用堆栈。随着时间的推移,这可能会证明更易于维护,因为它不再依赖于有一个非常大的堆栈来适当地处理。

于 2012-04-15T12:19:25.220 回答