對遞歸算法的理解
阿新 • • 發佈:2017-09-06
大型 oid 返回 轉化 運行 需要 代碼量 str 廣泛 1.遞歸的定義:程序調用自身的編程技巧稱為遞歸。遞歸做為一種算法在程序設計語言中廣泛應用。一個過程或函數在其定義或說明中有直接或間接調用自身的一種方法,它通常把一個大型復雜的問題層層轉化為一個與原問題相似的規模較小的問題來求解,遞歸策略只需少量的程序就可描述出解題過程所需要的多次重復計算,大大地減少了程序的代碼量。遞歸的能力在於用有限的語句來定義對象的無限集合。一般來說,遞歸需要有邊界條件、遞歸前進段和遞歸返回段。當邊界條件不滿足時,遞歸前進;當邊界條件滿足時,遞歸返回。
2.遞歸的優點:代碼簡潔,結構清晰,可讀性強,而且容易用數學歸納法來證明算法的正確性;
3.遞歸的缺點:遞歸算法的運行效率較低,無論是耗費的計算時間還是占用的存儲空間都比非遞歸算法要多。
4.遞歸的實例:
1).計算 n! ;
2.遞歸的優點:代碼簡潔,結構清晰,可讀性強,而且容易用數學歸納法來證明算法的正確性;
3.遞歸的缺點:遞歸算法的運行效率較低,無論是耗費的計算時間還是占用的存儲空間都比非遞歸算法要多。
4.遞歸的實例:
1).計算 n! ;
1 public class Demo { 2 public static void main(String[] args) { 3 System.out.println(recursion(10)); 4 } 5 public static int recursion(int i){ 6 int sum = 0; 7 if(i == 1){ 8 return 1; 9 }else{ 10 sum = i * recursion(i-1);11 } 12 return sum; 13 } 14 }
對遞歸算法的理解