遞迴是一種技術手段,並不嚴格算是一種演算法,是指程式直接間接呼叫自身的程式設計技巧。
遞迴需要有邊界條件,遞迴前進段和遞迴返回段。
(1)當邊界條件不滿足時,遞迴前進;
(2)當邊界條件滿足時,遞迴返回。
ps:在使用遞迴策略時,必須有乙個明確的遞迴結束條件,成為遞迴出口,否則將無限進行下去
遞迴的缺點:
*遞迴演算法解體的執行效率低。
在遞迴呼叫過程中,系統為每一層的返回點、區域性變數等開闢了堆疊來儲存。遞迴次數多容易造成堆疊溢位等
例題一:
fibonacci數列:
int fib(int n)
例題二:
集合的全排列問題
演算法分析與設計 遞迴與尾遞迴
什麼是遞迴?遞迴最恰當的比喻,就是查詞典。我們使用的詞典,本身就是遞迴,為了解釋乙個詞,需要使用更多的詞。當你查乙個詞,發現這個詞的解釋中某個詞仍然不懂,於是你開始查這第二個詞,可惜,第二個詞裡仍然有不懂的詞,於是查第三個詞,這樣查下去,直到有乙個詞的解釋是你完全能看懂的,那麼遞迴走到了盡頭,然後你...
演算法分析與設計3 遞迴
任何乙個可以用計算機求解的問題所需的計算時間都與其規模n有關。問題的規模越小,越容易直接求解,解題所需的計算時間也越少。分治法的設計思想是,將乙個難以直接解決的大問題,分割成一些規模較小的相同問題,以便各個擊破,分而治之。如果原問題可分割成k個子問題 1 k n 且這些子問題都可解,並可利用這些子問...
演算法分析設計 遞迴演算法
what s the 遞迴演算法 定義 程式直接或間接呼叫自身的程式設計技巧稱為遞迴演算法 recursion 乙個過程或函式在其定義或說明中又直接或間接呼叫自身的一種方法,它通常把乙個大型複雜的問題層層轉化為乙個與原問題相似的規模較小的問題來求解,遞迴策略只需少量的程式就可描述出解題過程所需要的多...