递归与非递归的优劣

来源:2-5 递归运行的机制:递归的微观解读

讲武德的年轻人

2022-02-28 07:38:16

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

写回答

1回答

liuyubobobo

2022-02-28

看怎么定义“好”了。


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


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


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


继续加油!:)

1

算法与数据结构

波波老师5年集大成之作,算法与数据结构系统学习,考试、面试、竞赛通用

2638 学习 · 1091 问题

查看课程