1. 程式人生 > 其它 >宜搭小技巧|海量資料管理難?這招幫你事半功倍

宜搭小技巧|海量資料管理難?這招幫你事半功倍

遞迴演算法簡介

遞迴演算法是一種直接或者間接呼叫自身函式或者方法的演算法。說簡單了就是程式自身的呼叫。
其實質就是將原問題不斷分解為規模縮小的子問題,然後遞迴呼叫方法來表示問題的解。(用同一個方法去解決規模不同的問題)

遞迴演算法思想

  • 遞去:將遞迴問題分解為若干個規模較小,與原問題形式相同的子問題,這些子問題可以用相同的解題思路來解決
  • 歸來:當你將問題不斷縮小規模遞去的時候,必須有一個明確的結束遞去的臨界點(遞迴出口),一旦達到這個臨界點即就從該點原路返回到原點,最終問題得到解決。

設計要點

遞迴思維是一種從下向上的思維方式,使用遞迴演算法往往可以簡化我們的程式碼,而且還幫我們解決了很複雜的問題。遞迴演算法的難點就在於它的邏輯性,一般設計遞迴演算法需要考慮以下幾點:

  • 明確遞迴的終止條件(遞迴出口)
  • 提取重複的邏輯,縮小問題的規模不斷遞去
  • 給出遞迴終止時的處理辦法

自然數數列

以自然數列1 , 2 , 3 , 4 , 5 , 6 ....... n 為例。求第n個數字
很顯然這個數列的規律是後一項等於前一項加一,即n = n + 1 。
函式表示式為

  • f(n)= f(n-1) + 1
  • f (1) = 1 //遞迴出口
    所以遞迴函式可以寫為
    int f(int n){ if (n == 1){ return 1; } else{ return f(n-1) +1; } }