B6.png

 

遞迴(Recursion):函數本身又可以呼叫自己的副程式。

 

※遞回函數-撰寫程式時,可以處理程序且將程式模組化為ㄧ支獨立的函數,如果此函數可以反覆自己呼叫自己。

   遞迴函數種類:

    ◎直接(Direct)遞迴:程序自己直接呼叫自己 

    ◎間接(Indirect)遞迴:兩個以上函數,彼此呼叫對方,形成迴路

   遞迴實務上應用:

    ◎計算n階乘(n!)

      說明:

       1. 遞迴函數必須要設定初值和終值

       2. 遞迴和數必須要有更新值

       3. 遞迴函數必須要自己呼叫自己

    ◎費氏數列

      說明:

       1. 某一數為其前兩個數的和

    ◎河內塔的圓盤搬移過程

      說明:

       1. 先將上面n-1個盤子搬到另一柱子

       2. 再將最大的盤子搬至目的地

       3. 將剩下的n-1個盤子搬至目的地

    ◎二項係數

※遞回與非遞迴

   遞迴優點

    ◎程式較簡潔

    ◎表達力較強

    ◎區域變數與暫存變數較少

   遞迴缺點

    ◎執行時參數的存取較費時間

    ◎需額外堆疊空間支援

 

   非遞迴優點

    ◎較節省執行的時間

    ◎不須額外的堆疊空間

   非遞迴缺點

    ◎程式較長

    ◎表達力較弱

    ◎區域變數與暫存變數較多

arrow
arrow

    歐歐 Lin 發表在 痞客邦 留言(0) 人氣()