递归内存流程(栈)
栈 后进先出 (堆 开辟内存空间时 去堆里取 ) (查看函数压栈执行流程 http://pythontutor.com/visualize.html#mode=edit)
函数执行需要压栈 函数所使用的变量也要压栈 函数执行完函数及其数据要弹出数据消亡(局部变量函数调用时创建,调用结束时消亡)
栈跟线程相关 , 不同线程的栈互不干扰
递归 (分为 递 、归 先递 后 归)
函数直接或间接调用自身就是递归
递归要有边界条件、递归前进段、递归返回段
递归一定要有边界条件
边界不满足时,递归前进 边界满足时,递归返回
总结
递归相对运行效率低,每一次调用函数都要开辟栈帧
递归有深度限制,Cpython限制1000
绝大多数递归,都可以用循环实现
练习题:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。