遞歸和迭代的區別

從「編程之美」的角度看,可以借用一句非常經典的話:「迭代是人,遞歸是神!」 遞歸:重複調用函數自身實現循環稱爲遞歸(例如:if else 調用自己,並在合適時機退出) 遞歸實際上不斷地深層調用函數,直到函數有返回纔會逐層的返回,遞歸是用棧機制實現的,每深入一層,都要佔去一塊棧數據區域,因此,遞歸涉及到運行時的堆棧開銷(參數必須壓入堆棧保存,直到該層函數調用返回爲止),所以有可能導致堆棧溢出的錯誤;
相關文章
相關標籤/搜索