递归还是迭代?

递归还是迭代?

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



LEATH
浏览 681回答 3
3回答

慕勒3428872

递归可能会更昂贵,这取决于递归函数是否是尾递归(最后一行是递归调用)。尾递归应得到编译器的认可,并对其迭代对应进行优化(同时保持代码中的简洁、清晰的实现)。我会用最有意义的方式来编写算法,对于那些必须在几个月或几年内维护代码的可怜的傻瓜(不管是你自己还是其他人)来说,它是最清晰的。如果遇到性能问题,那么请分析代码,然后通过迭代实现进行优化。你也许想调查一下回忆录和动态规划.

拉丁的传说

循环可以为您的程序实现性能增益。递归可以为您的程序员实现性能提升。选择哪一个在你的情况下更重要!
打开App,查看更多内容
随时随地看视频慕课网APP