为了账号安全,请及时绑定邮箱和手机立即绑定

递归还是迭代?

递归还是迭代?

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

3 回答

?
慕勒3428872

TA贡献1848条经验 获得超5个赞

递归可能会更昂贵,这取决于递归函数是否是尾递归(最后一行是递归调用)。尾递归得到编译器的认可,并对其迭代对应进行优化(同时保持代码中的简洁、清晰的实现)。

我会用最有意义的方式来编写算法,对于那些必须在几个月或几年内维护代码的可怜的傻瓜(不管是你自己还是其他人)来说,它是最清晰的。如果遇到性能问题,那么请分析代码,然后通过迭代实现进行优化。你也许想调查一下回忆录动态规划.


查看完整回答
反对 回复 2019-07-11
?
拉丁的传说

TA贡献1789条经验 获得超8个赞

循环可以为您的程序实现性能增益。递归可以为您的程序员实现性能提升。选择哪一个在你的情况下更重要!


查看完整回答
反对 回复 2019-07-11
  • 3 回答
  • 0 关注
  • 673 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信