演算法 遞迴與斐波那契
阿新 • • 發佈:2019-01-07
1 遞迴
把遞迴想成方法棧,後進先出。遞:一層一層深入(依次執行前置程式碼),直到到達遞迴終止條件(一定要有終止條件,不再執行自己),歸:再從底層一層一層返回(依次執行後置程式碼)。
快速排序:典型的遞迴前置思想,先執行取中分邊,再左右向下遞迴
歸併排序:典型的遞迴後置思想,先取中左右向下遞迴,再從最底層一層層向上執行歸併
2 複用避免重複計算
遞迴時可以把各步結果儲存,可以複用。 斐波那契數列就是典型例子
3 斐波那契數
//遞迴方式實現斐波那契數 public static long rec_fib(long i) { long result = 0; if(i <= 0) return 0; //遞迴終止 if(i == 1 || i == 2) //遞迴終止 result = 1; else { System.out.println("遞迴前置"); result = rec_fib(i-1) + rec_fib(i-2); System.out.println("遞迴後置"); } return result; }