栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

递归函数的危险

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

递归函数的危险

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

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

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

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

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



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/625788.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号