递归内存流程(栈)
栈 后进先出 (堆 开辟内存空间时 去堆里取 ) (查看函数压栈执行流程 http://pythontutor.com/visualize.html#mode=edit)
函数执行需要压栈 函数所使用的变量也要压栈 函数执行完函数及其数据要弹出数据消亡(局部变量函数调用时创建,调用结束时消亡)
栈跟线程相关 , 不同线程的栈互不干扰
创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于做网站、成都网站制作、建水网络推广、小程序设计、建水网络营销、建水企业策划、建水品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联公司为所有大学生创业者提供建水建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com
递归 (分为 递 、归 先递 后 归)
函数直接或间接调用自身就是递归
递归要有边界条件、递归前进段、递归返回段
递归一定要有边界条件
边界不满足时,递归前进 边界满足时,递归返回
总结
递归相对运行效率低,每一次调用函数都要开辟栈帧
递归有深度限制,Cpython限制1000
绝大多数递归,都可以用循环实现
练习题: