什么是递归

什么是递归

程序在运行过程中调用自身,这就叫:递归(recursion

为什么需要递归?

通过递归,我们可以将一个复杂的问题,按照一定的规则分解为多个相似子问题,从而达到解决复杂问题的目的。

在编程中,递归算法是

理解递归

递归调用-golang为例

递归的优缺点

优点:

  • 简单清晰:我们只需要解决了最简单的子问题,然后不断的重复即可解决最终的复杂问题

缺点

  • 运行效率较低,性能差:因此一般来说都应尽量避免使用递归,除非没有更好的算法,或在特定情况下使用
  • 过深的递归容易导致栈溢出:因为每次的调用都需要开辟新的栈空间,过多的递归容易导致内存溢出(栈内存溢出)

递归构成的条件

  1. 子问题须与原始问题为同样的事,且更为简单
  2. 不能无限制地调用本身,须有个出口,化简为非递归状况处理

转载请声明出处: MinsonLee的博客:https://minsonlee.github.io

扫描下方二维码,关注公众号,接收更多实时内容

新猿呓码

打赏一个呗

取消

感谢客官打赏,您的打赏使我动力十足!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦