1. 程式人生 > >迴圈和遞迴的異同

迴圈和遞迴的異同

演算法其實還是很有意思的 慢慢研究 收穫會很大

簡單的來講解一下 迴圈與遞迴的異同

1.相同:

遞迴與迴圈都是解決 重複操作的機制

2.不同

     就演算法效率而言,遞迴演算法的實現往往要比迭代演算法消耗更多的時間(呼叫和返回均需要額外的時間)

與儲存空間(用來儲存不同次呼叫情況下變數的當前值得棧空間)也限制了遞迴的深度。

    每個迭代演算法原則上總可以轉換成與它等價的遞迴演算法,反之不然。

    遞迴的層次是可以控制的,而循巢狀的層次只能是固定的,因此遞迴是比迴圈更靈活的重複操作機制。

遞迴演算法解題通常有三個步驟

1.分析問題 尋找遞迴 找出最大規模問題 與最小規模問題的關係 這樣通過遞迴使問題的規模逐漸變小

2.設定邊界、控制遞迴、找出停止條件 也就是說演算法可解的最小規模問題

3.設計函式、確定引數 和其他演算法模組一樣設計函式中的操作及相關操作