天天看點

疊代是人,遞歸是神(疊代與遞歸的總結:比較)

在計算機程式設計實作中有常常兩種方法:一曰疊代(iterate);二曰遞歸(recursion)。

從“程式設計之美”的角度看,可以借用一句非常經典的話:“疊代是人,遞歸是神!”來從宏觀上對二者進行把握。

從概念上講,遞歸就是指程式調用自身的程式設計思想,即一個函數調用本身;疊代是利用已知的變量值,根據遞推公式不斷演進得到變量新值得程式設計思想。

從直覺上講,遞歸是将大問題化為相同結構的小問題,從待求解的問題出發,一直分解到已經已知答案的最小問題為止,然後再逐級傳回,進而得到大問題的解(一個非常形象的例子就是分類回歸樹 classification and regression tree,從root出發,先将root分解為另一個(root,sub-tree),就這樣一直分解,直到遇到leafs後逐層傳回);而疊代則是從已知值出發,通過遞推式,不斷更新變量新值,一直到

繼續閱讀