最高人民法院關於購買人使用分期付款購買的車輛從事運輸因交通事故造成他人財產損失保留車輛所有權的出賣方不應承擔民事責任的批覆

兩高法律資訊2018-05-02 12:07:29

點擊上方藍色文字關注↑↑↑↑↑


什麼是遞歸算法

遞歸算法是把問題轉化為規模縮小了的同類問題的子問題,然後遞歸調用函數(或過程)來表示問題的解。一個過程(或函數)直接或間接調用自己本身,這種過程(或函數)叫遞歸過程(或函數)。

遞歸過程一般通過函數或子過程來實現。遞歸方法:在函數或子過程的內部,直接或者間接地調用自己的算法。遞歸其實就是在棧內存中不斷的加載同一個函數

什麼時候用遞歸呢?

當一個功能被重複使用,而每一次使用該功能時的參數不確定,都由上次的功能元素結果來確定。

遞歸的注意事項

  1. 必須有可最終達到的終止條件,否則程序將陷入無窮循環出現棧內存溢出錯誤(StackOverflowError);

  2. 子問題在規模上比原問題小,或更接近終止條件;

  3. 子問題可通過再次遞歸調用求解或因滿足終止條件而直接求解;

  4. 子問題的解應能組合為整個問題的解。

遞歸實戰

下面用遞歸來實現從1+2+3+...N的小例子。

  1. public static void main(String[] args) {

  2.    System.out.println(sum(10));

  3. }

  4. private static int sum(int n) {

  5.    if (n == 1) {

  6.        return n;

  7.    } else {

  8.        return n + sum(n - 1);

  9.    }

  10. }

上面的例子採用遞歸算法從1加到10,看著是倒著來的從10加到1,每次減1進行相加真到最後為1終止。

如果對你有用,歡迎分享到朋友圈

近期精選


資料:2TB,成為架構師的四個階段資料

總結:2017年度Java技術棧精選乾貨總結

教程:個人珍藏最全Spring Boot全套視頻教程

面試:史上最全Java多線程面試題及答案

書籍:進階Java架構師必看的15本書

進階:Java對象引用四個級別(強、軟、弱、虛)


Java技術棧

長按二維碼關注我們



架構|分佈式|技術教程|面經


https://weiwenku.net/d/109858447