gpt4 book ai didi

performance - 递归还是迭代?

转载 作者:行者123 更新时间:2023-12-04 02:29:54 24 4
gpt4 key购买 nike

如果我们使用循环而不是递归,或者在两者都可以达到相同目的的算法中反之亦然,是否会影响性能?例如:检查给定的字符串是否是回文。
我见过许多程序员使用递归来炫耀什么时候简单的迭代算法可以满足要求。
编译器在决定使用什么方面起着至关重要的作用吗?

最佳答案

递归可能会更昂贵,具体取决于递归函数是否为 tail recursive (最后一行是递归调用)。尾递归应该被编译器识别并优化为它的迭代对应物(同时保持你在代码中的简洁、清晰的实现)。

我会以最有意义的方式编写算法,并且对于必须在几个月或几年内维护代码的可怜的傻瓜(无论是你自己还是其他人)来说也是最清晰的。如果您遇到性能问题,请分析您的代码,然后才通过转向迭代实现来研究优化。您可能需要查看 memoizationdynamic programming .

关于performance - 递归还是迭代?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6463039/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com