1. 程式人生 > >遞迴思想和迭代思想

遞迴思想和迭代思想

遞迴思想(遞迴函式)

遞迴思想的一個基本形式是:在一個函式中,有至少一條語句,又會去呼叫該函式自身。
但是,從程式碼角度來說,如果單純是函式內部呼叫函式本,則會出現“出不來”的現象。
則我們就必須再來解決下一個問題:
怎麼終止(停止)這種呼叫——找到遞迴函式的出口。

遞推思想(迭代思想)

遞推思想本身並不跟函式有直接關係(雖然常常寫在函式中)。
其基本思路為:
為了解決一個“大”問題,根據現實邏輯,如果能夠找到同類問題的一個“最小問題”的答案(通常是已知的),並且根據已知演算法,又可以因此得到比最小問題“大一級”問題的答案。 而且,依次類推,又可以得到再大一級問題的答案,最終就可以得到“最大那個問題”(即要解決的問題)的答案。
可見,該思想的過程依賴與2個條件:

  1. 可知同類最小問題的答案;
  2. 大一級問題的答案可以通過小一級問題的答案經過簡單運算規則而得到。

此思想的解體思路是:從小到大
對比:遞迴思想是:從大到小,在迴歸到大。

總結比較:

  1. 很多問題,用遞迴和遞推都可以解決。
  2. 有些問題只能用遞迴。
  3. 如果兩種方法都可以解決,推薦使用遞推——效率高很多!

文獻資料