遞歸算法核心思想


      遞歸是一種函數或方法中調用自身的編程技術,遞歸思想在於把大問題分解為小問題,進一步分解為更小的問題,直到每個小問題可以解決為止,也就是說,遞歸就是

用與自己相似但規模較小的問題來描述自己。

      遞歸算法的三個特性:

      1,求解規模為n的問題可以轉化為一個或多個結構相同規模較小的的問題,然后從這些較小的問題可以方便構造出大問題的解

      2,遞歸調用的次數必須是有限的

      3,遞歸必定有結束條件來終止遞歸,

     遞歸的算法執行過程為遞推和遞歸兩個階段。在遞推階段,將規模為n的問題的求解遞推到比原來規模小的問題的求解,而且必須有終止遞歸的條件。在回歸階段,在獲得最簡單問題的解后,逐級返回,依次得到規模較大問題的解。遞歸算法無論是在空間還是時間上耗費量都比撲通算法要多,在算法設計時經常將遞歸算法轉化為非遞歸算法,轉化方法有以下3種:

     1,通過分析跳過分解步驟,直接用循環結構來求值

     2,用棧保存程序的運行過程,通過分析只保存必須保存的信息,從而利用非遞歸算法代替遞歸算法

     3,利用棧保存參數,由於棧的后進先出的特性與遞歸算法的執行相吻合,因而可以用非遞歸算法代替遞歸算法


免責聲明!

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



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