day4-遞歸調用
阿新 • • 發佈:2018-01-19
inf 有一個 img 但是 blog http 語言 舉例 一行
---恢復內容開始---
return關鍵字可以滿足針對一個正在運行的函數,突然不再運行了的功能。
遞歸調用(遞推)舉例推斷出年齡26歲: 回溯的階段
總結遞歸的使用:
#python中的遞歸
python中的遞歸效率低,需要在進入下一次遞歸時保留當前的狀態,在其他語言中可以有解決方法:尾遞歸優化,即在函數的最後一步(而非最後一行)調用自己,尾遞歸優化:http://egon09.blog.51cto.com/9161406/1842475
但是python又沒有尾遞歸,且對遞歸層級做了限制
#總結遞歸的使用:
1. 必須有一個明確的結束條件
2. 每次進入更深一層遞歸時,問題規模相比上次遞歸都應有所減少
3. 遞歸效率不高,遞歸層次過多會導致棧溢出(在計算機中,函數調用是通過棧(stack)這種數據結構實現的,每當進入一個函數調用,棧就會加一層棧幀,每當函數返回,棧就會減一層棧幀。由於棧的大小不是無限的,所以,遞歸調用的次數過多,會導致棧溢出)
---恢復內容結束---
day4-遞歸調用