遞歸,emmmmmmm,擁有壹種魅力,接近人的立即思維,容易理解,又不容易理解。
遞歸算法的優點: 它使我們能夠簡潔地利用重復結構呈現諸多問題。通過使算法描述以遞歸的方式利用重復結構,我們經常可以避開復雜的案例分析和嵌套循環。這種算法會得出可讀性更強的算法描述,而且十分有效。
但是 ,遞歸的使用要根據相應的成本來看,每次遞歸python解釋器都會給壹個空間來記錄函數活動狀態。但是有時候內存成本很高,有時候將遞歸算法轉為非遞歸算法是壹種好辦法。
當然我們可以換解釋器、使用堆棧數據結構等方法,來管理遞歸的自身嵌套,減小儲存的活動信息,來減小內存消耗。
最近算法學到了遞歸這壹塊,寫了三個課後習題:
給壹個序列S,其中包含n個元素,用遞歸查找其最大值。
輸出:
調和數:Hn = 1 + 1/2 + 1/3 + ··· + 1/n
輸出:
例如:"12345"<class 'str'> 轉換為12345<class 'int'>
輸出:
遞歸分為線性遞歸、二路遞歸、多路遞歸。