递归和迭代的区别

从“编程之美”的角度看,可以借用一句非常经典的话:“迭代是人,递归是神!” 递归:重复调用函数自身实现循环称为递归(例如:if else 调用自己,并在合适时机退出) 递归实际上不断地深层调用函数,直到函数有返回才会逐层的返回,递归是用栈机制实现的,每深入一层,都要占去一块栈数据区域,因此,递归涉及到运行时的堆栈开销(参数必须压入堆栈保存,直到该层函数调用返回为止),所以有可能导致堆栈溢出的错误;
相关文章
相关标签/搜索