递归与非递归的优劣

递归与非递归的优劣

老师您好。您提到了递归有一些缺点。有的问题可以用递归,也可以用非递归方法解决,比如LC203这个题目,可不可以理解非递归方法一般比递归的方法好呢?或者说,递归方法主要用在非线性数据结构中。

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
liuyubobobo 2022-02-28 09:16:06

看怎么定义“好”了。


理论上,从性能的角度,非递归算法总是优于递归算法的。但是非递归算法在很多时候逻辑不直观,书写复杂,递归算法的逻辑更清晰,更容易写出相应的逻辑。


如果对于一个任务,你能直接想清楚非递归的逻辑,那么就直接写非递归代码就好了。否则的话,如果递归逻辑更容易想清楚,写递归代码即可。现代计算机编程在大多数情况下,递归带来的开销可以忽略不计。除非在一些特殊情况下(极底层的开发或者嵌入式开发),才可能需要思考递归带来的额外开销问题。但也可以先从递归代码的逻辑出发,再转换成非递归。


是的,递归算法主要用于非线性的结构中(或者逻辑框架中)。


继续加油!:)

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
算法与数据结构
  • 参与学习       2583    人
  • 解答问题       1082    个

慕课网算法名师Liuyubobobo,5年集大成之作 从0到工作5年,算法与数据结构系统解决方案

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师