递归函数的危险

递归函数的危险,第1张

递归函数的危险

递归在Python中是“不好的”,因为它通常比迭代解决方案要慢,并且因为Python的堆栈深度不是无限的(并且没有尾调用优化)。对于求和函数,是的,您可能想要无限的深度,因为要对一百万个数字进行求和是完全合理的,而性能差异将成为包含大量项的问题。在这种情况下,您不应使用递归

另一方面,如果要遍历从XML文件读取的DOM树,则不可能超过Python的递归深度(默认为1000)。当然 可以,
但是实际上不行。当您知道要使用哪种数据时,您可以确信不会溢出堆栈。

在我看来,递归树遍历比迭代遍历更自然地进行写入和读取,并且递归开销通常只占运行时间的一小部分。如果对您来说真正重要的是,它花费了16秒而不是14秒,那么扔PyPy可能是您更好地利用时间的方法。

递归似乎很自然地适合您所发布的问题,如果您认为代码更易于阅读和维护,并且性能足够,那么就去做吧。

我从小在计算机上编写代码,实际上,将递归深度限制为大约16(如果有的话),所以对我来说1000似乎很豪华。:-)



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5631674.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存