什么是递归
程序在运行过程中调用自身,这就叫:递归(recursion
)
为什么需要递归?
通过递归,我们可以将一个复杂的问题,按照一定的规则分解为多个相似的子问题,从而达到解决复杂问题的目的。
在编程中,递归算法是
理解递归
递归的优缺点
优点:
- 简单清晰:我们只需要解决了最简单的子问题,然后不断的重复即可解决最终的复杂问题
缺点
- 运行效率较低,性能差:因此一般来说都应尽量避免使用递归,除非没有更好的算法,或在特定情况下使用
- 过深的递归容易导致栈溢出:因为每次的调用都需要开辟新的栈空间,过多的递归容易导致内存溢出(栈内存溢出)
递归构成的条件
- 子问题须与原始问题为同样的事,且更为简单
- 不能无限制地调用本身,须有个出口,化简为非递归状况处理