1. 程式人生 > >演算法 遞迴與斐波那契

演算法 遞迴與斐波那契

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;
	}