1.
一般來說,有兩種方式可以撰寫具有重覆執行 (Repetitive)特性的演算法:
Iteration (迴圈)
Recursion (遞迴)
Def: algorithm 中含有self-calling (自我呼叫)敘述存在。
2.遞迴的種類:
直接遞迴 (Direct Recursion):
函式或程序直接呼叫本身時稱之。
void function(void)
{
function(void);
}
間接遞迴 (Indirect Recursion):
函式或程序先呼叫另外的函式,再從另外函式呼叫原來的函式稱之。
void function(void)
{
function1()
void function1(void)
{
function();
}
}
3.遞迴演算法則的設計:
找出問題的終止條件 (即:base case).
找出問題本身的遞迴關係 (即:general case).
Procedure 遞迴副程式名(參數)
{
if (base case)
return(結果); ……//達到終止條件時結束遞迴,需要時回傳結果
else
general case; ……//利用general case執行遞迴呼叫,需要時加上return
}