C語言——遞歸算法


遞歸算法:是一種直接或者間接地調用自身的算法。在計算機編寫程序中,遞歸算法對解決一大類問題是十分有效的,它往往使算法的描述簡潔而且易於理解。
 
遞歸過程一般通過函數或子過程來實現。
 
遞歸算法的實質:是把問題轉化為規模縮小了的同類問題的子問題。然后遞歸調用函數(或過程)來表示問題的解。
 
遞歸算法解決問題的特點:
  (1) 遞歸就是在過程或函數里調用自身。
  (2) 在使用遞歸策略時,必須有一個明確的遞歸結束條件,稱為遞歸出口。
  (3) 遞歸算法解題通常顯得很簡潔,但遞歸算法解題的運行效率較低。所以一般不提倡用遞歸算法設計程序。
  (4) 在遞歸調用的過程當中系統為每一層的返回點、局部量等開辟了棧來存儲。遞歸次數過多容易造成棧溢出等。所以一般不提倡用遞歸算法設計程序。
 
遞歸的原理,其實就是一個棧(stack), 比如求5的階乘,要知道5的階乘,就要知道4的階乘,4又要是到3的,以此類推,所以遞歸式就先把5的階乘表示入棧, 在把4的入棧,直到最后一個,之后呢在從1開始出棧, 看起來很麻煩,確實很麻煩,他的好處就是寫起代碼來,十分的快,而且代碼簡潔,其他就沒什么好處了,運行效率出奇的慢.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM