递归与非递归的优劣
老师您好。您提到了递归有一些缺点。有的问题可以用递归,也可以用非递归方法解决,比如LC203这个题目,可不可以理解非递归方法一般比递归的方法好呢?或者说,递归方法主要用在非线性数据结构中。
7
收起
正在回答 回答被采纳积分+1
1回答
liuyubobobo
2022-02-28 09:16:06
看怎么定义“好”了。
理论上,从性能的角度,非递归算法总是优于递归算法的。但是非递归算法在很多时候逻辑不直观,书写复杂,递归算法的逻辑更清晰,更容易写出相应的逻辑。
如果对于一个任务,你能直接想清楚非递归的逻辑,那么就直接写非递归代码就好了。否则的话,如果递归逻辑更容易想清楚,写递归代码即可。现代计算机编程在大多数情况下,递归带来的开销可以忽略不计。除非在一些特殊情况下(极底层的开发或者嵌入式开发),才可能需要思考递归带来的额外开销问题。但也可以先从递归代码的逻辑出发,再转换成非递归。
是的,递归算法主要用于非线性的结构中(或者逻辑框架中)。
继续加油!:)
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星