递归 VS 迭代

递归代码简洁。

递归的缺点:

1.递归是函数调用自身,函数调用有时间和空间的消耗:每一次函数调用,都需要在内存栈中分配空间已保存参数,返回地址及临时变量,而且往栈里压入数据和弹出数据都需要时间。

2.递归中有很多计算都是重复的(对存在重叠子问题的情形),从而对性能带来很大影响。比如:计算佩波拉契数列问题。

3.递归次数过多会存在调用栈溢出的问题!

参考:《剑指Offer》

posted @ 2016-11-21 21:18  BinWone  阅读(338)  评论(0编辑  收藏  举报