1. 程式人生 > >遞迴演算法堆疊溢位

遞迴演算法堆疊溢位

遞迴演算法:

    一種直接或者間接的呼叫自身演算法的過程。在計算機編寫程式中,遞迴演算法對解決一大類問題是十分有效的。

特點:

  ①遞迴就是在過程或者函式裡呼叫自身。

  ②在使用遞迴策略時,必須有一個明確的遞迴條件,稱為遞迴出口。

  ③遞迴演算法解題通常顯得很簡潔,但遞迴演算法解題的效率較低。所以一般不倡導使用遞迴演算法設計程式。

  ④在遞迴呼叫的過程當中系統的每一層的返回點、區域性變數等開闢了棧來儲存。遞迴函式次數過多容易造成棧溢位等。 所以一般不倡導用遞迴演算法設計程式

  遞迴如果沒有終止條件會導致遞迴呼叫成為死迴圈而不能正常結束,並且會造成棧溢位。

解決遞迴的棧溢位問題:

    使用尾遞迴進行優化,但是Python中並沒有尾遞迴,不過,有大牛寫過尾遞迴的裝飾器可以解決這個問題。