簡介
遞歸樹和階乘
斐波那契數列
gcd最大公約數
n中選k
0-1背包問題
硬币找零問題
數組的最長遞增子序列
旅行商問題
在之前我們介紹的很多資料結構和算法都用到了遞歸,遞歸非常容易了解,用途也很廣泛,但是有一個缺點就是需要儲存棧的狀态,如果遞歸次數太多會造成棧溢出的問題。
本文将會講解常見的棧的應用,并使用遞歸樹形象的展示其遞歸的過程。
遞歸樹是疊代過程的一種圖像表述。遞歸樹往往被用于求解遞歸方程, 它的求解表示比一般的疊代會更加的簡潔與清晰。
看一個最簡單的使用遞歸的例子,就是階乘。
比如 4!=4* 3!= 4 * 3 * 2! = 4 * 3 * 2 * 1! =24。
我們用一個動畫來詳細看一下階乘的遞歸調用和它的遞歸樹。
遞歸樹的運作過程是先建構遞歸樹,然後從最底層得到運作結果,一層一層的進行回歸,最後得到最終的結果。