递归算法堆栈溢出

来源:互联网 发布:米思奇软件下载 编辑:程序博客网 时间:2024/06/06 19:39

递归算法:

    一种直接或者间接的调用自身算法的过程。在计算机编写程序中,递归算法对解决一大类问题是十分有效的。

特点:

  ①递归就是在过程或者函数里调用自身。

  ②在使用递归策略时,必须有一个明确的递归条件,称为递归出口。

  ③递归算法解题通常显得很简洁,但递归算法解题的效率较低。所以一般不倡导使用递归算法设计程序。

  ④在递归调用的过程当中系统的每一层的返回点、局部变量等开辟了栈来存储。递归函数次数过多容易造成栈溢出等。 所以一般不倡导用递归算法设计程序

  递归如果没有终止条件会导致递归调用成为死循环而不能正常结束,并且会造成栈溢出。

解决递归的栈溢出问题:

    使用尾递归进行优化,但是Python中并没有尾递归,不过,有大牛写过尾递归的装饰器可以解决这个问题。



原创粉丝点击