递归一定要用到栈吗 程序的递归算法与非递归有什么区别?

程序的递归算法与非递归有什么区别?递归算法是一种直接或间接调用自身的算法。在计算机程序设计中,递归算法对于解决一大类问题是非常有效的。它往往使算法的描述简洁易懂。递归是在过程或函数中调用自身。在使用递

程序的递归算法与非递归有什么区别?

递归算法是一种直接或间接调用自身的算法。在计算机程序设计中,递归算法对于解决一大类问题是非常有效的。它往往使算法的描述简洁易懂。递归是在过程或函数中调用自身。在使用递归策略时,必须有一个显式的递归结束条件,称为递归退出。递归算法通常非常简单,但效率较低。因此,不建议使用递归算法来设计程序。在递归调用过程中,系统打开一个栈来存储每一层的返回点和局部数量。太多的递归很容易导致堆栈溢出。