尾递归 - 杜绝内存泄漏溢出爆栈

Python作为一枚上手快的语言来说真的很便利,但是随着我们越来越熟悉它了,我们会开发很多奇奇怪怪的东西;
然而我就是酱紫,所以涉及到了一个递归的问题,可是数据量比较大,层次较深,小机器内存完全不够用,就会出现递归的时候出现内存不足,导致程序中断了,我查看日志发现,是系统把进程强制关闭了,就是内存不足了,爆栈;
所以我们现在说一下这个递归的优化 -- 尾递归;
其实就是把已经计算好的结果更新一下,而不需要从新创建栈;

# 例子代码
def tail_recursion(n, total=0):
    if n == 0:
        return total
    else:
        return tail_recursion(n-1, total+n)
# 执行结果:
tail_recursion(5)
tail_recursion(4, 5)
tail_recursion(3, 9)
tail_recursion(2, 12)
tail_recursion(1, 14)
tail_recursion(0, 15)
15
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!