遞歸內(nèi)存流程(棧)
棧 后進(jìn)先出 (堆 開辟內(nèi)存空間時 去堆里取 ) (查看函數(shù)壓棧執(zhí)行流程 http://pythontutor.com/visualize.html#mode=edit)
函數(shù)執(zhí)行需要壓棧 函數(shù)所使用的變量也要壓棧 函數(shù)執(zhí)行完函數(shù)及其數(shù)據(jù)要彈出數(shù)據(jù)消亡(局部變量函數(shù)調(diào)用時創(chuàng)建,調(diào)用結(jié)束時消亡)
棧跟線程相關(guān) , 不同線程的?;ゲ桓蓴_
創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于做網(wǎng)站、成都網(wǎng)站制作、建水網(wǎng)絡(luò)推廣、小程序設(shè)計、建水網(wǎng)絡(luò)營銷、建水企業(yè)策劃、建水品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供建水建站搭建服務(wù),24小時服務(wù)熱線:18982081108,官方網(wǎng)址:www.cdcxhl.com
遞歸 (分為 遞 、歸 先遞 后 歸)
函數(shù)直接或間接調(diào)用自身就是遞歸
遞歸要有邊界條件、遞歸前進(jìn)段、遞歸返回段
遞歸一定要有邊界條件
邊界不滿足時,遞歸前進(jìn) 邊界滿足時,遞歸返回
總結(jié)
遞歸相對運行效率低,每一次調(diào)用函數(shù)都要開辟棧幀
遞歸有深度限制,Cpython限制1000
絕大多數(shù)遞歸,都可以用循環(huán)實現(xiàn)
練習(xí)題: