php中递归和迭代有什么区别

来自:互联网
时间:2021-07-06
阅读:

递归是指程序调用自身的编程技巧称为递归

优点:

1)大问题化为小问题,可以极大的减少代码量;

2)用有限的语句来定义对象的无限集合;

3)代码更简洁清晰,可读性更好

缺点:

1)递归调用函数,浪费空间;

2)递归太深容易造成堆栈的溢出;

迭代是指利用变量的原值推算出变量的一个新值,迭代就是A不停的调用B.

优点:

1)迭代效率高,运行时间只因循环次数增加而增加;

2)没什么额外开销,空间上也没有什么增加,

缺点:

1)不容易理解;

2)代码不如递归简洁;

3)编写复杂问题时困难。

两者的关系:

1)递归中一定有迭代,但是迭代中不一定有递归,大部分可以相互转换。

2)能用迭代的不用递归,递归调用函数,浪费空间,并且递归太深容易造成堆栈的溢出./*相对*/

返回顶部
顶部