摘要:什么是遞歸算法遞歸算法是把問題轉化為規模縮小了的同類問題的子問題,然后遞歸調用函數或過程來表示問題的解。遞歸方法在函數或子過程的內部,直接或者間接地調用自己的算法。遞歸實戰下面用遞歸來實現從的小例子。
什么是遞歸算法
遞歸算法是把問題轉化為規模縮小了的同類問題的子問題,然后遞歸調用函數(或過程)來表示問題的解。一個過程(或函數)直接或間接調用自己本身,這種過程(或函數)叫遞歸過程(或函數)。
遞歸過程一般通過函數或子過程來實現。遞歸方法:在函數或子過程的內部,直接或者間接地調用自己的算法。遞歸其實就是在棧內存中不斷的加載同一個函數
什么時候用遞歸呢?當一個功能被重復使用,而每一次使用該功能時的參數不確定,都由上次的功能元素結果來確定。
遞歸的注意事項必須有可最終達到的終止條件,否則程序將陷入無窮循環出現棧內存溢出錯誤(StackOverflowError);
子問題在規模上比原問題小,或更接近終止條件;
子問題可通過再次遞歸調用求解或因滿足終止條件而直接求解;
子問題的解應能組合為整個問題的解。
遞歸實戰下面用遞歸來實現從1+2+3+...N的小例子。
public static void main(String[] args) { System.out.println(sum(10)); } private static int sum(int n) { if (n == 1) { return n; } else { return n + sum(n - 1); } }
上面的例子采用遞歸算法從1加到10,看著是倒著來的從10加到1,每次減1進行相加真到最后為1終止。
推薦閱讀干貨:Spring Boot & Cloud 最強技術教程
工具:推薦一款在線創作流程圖、思維導圖軟件
分享Java干貨,高并發編程,熱門技術教程,微服務及分布式技術,架構設計,區塊鏈技術,人工智能,大數據,Java面試題,以及前沿熱門資訊等。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/71389.html
摘要:并總結經典面試題集各種算法和插件前端視頻源碼資源于一身的文檔,優化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快速搭建項目。 本文是關注微信小程序的開發和面試問題,由基礎到困難循序漸進,適合面試和開發小程序。并總結vue React html css js 經典面試題 集各種算法和插件、前端視頻源碼資源于一身的文檔,優化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快...
摘要:并總結經典面試題集各種算法和插件前端視頻源碼資源于一身的文檔,優化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快速搭建項目。 本文是關注微信小程序的開發和面試問題,由基礎到困難循序漸進,適合面試和開發小程序。并總結vue React html css js 經典面試題 集各種算法和插件、前端視頻源碼資源于一身的文檔,優化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快...
閱讀 1684·2023-04-25 20:16
閱讀 3838·2021-10-09 09:54
閱讀 2696·2021-09-04 16:40
閱讀 2517·2019-08-30 15:55
閱讀 830·2019-08-29 12:37
閱讀 2733·2019-08-26 13:55
閱讀 2903·2019-08-26 11:42
閱讀 3144·2019-08-23 18:26