什麽是遞歸算法?有什麽作用?
遞歸做為壹種算法在程序設計語言中廣泛應用.是指函數/過程/子程序在運行過程序中直接或間接調用自身而產生的重入現像. 程序調用自身的編程技巧稱為遞歸( recursion)。 壹個過程或函數在其定義或說明中又直接或間接調用自身的壹種方法,它通常把壹個大型復雜的問題層層轉化為壹個與原問題相似的規模較小的問題來求解,遞歸策略只需少量的程序就可描述出解題過程所需要的多次重復計算,大大地減少了程序的代碼量。遞歸的能力在於用有限的語句來定義對象的無限集合。用遞歸思想寫出的程序往往十分簡潔易懂。 壹般來說,遞歸需要有邊界條件、遞歸前進段和遞歸返回段。當邊界條件不滿足時,遞歸前進;當邊界條件滿足時,遞歸返回。 註意: (1) 遞歸就是在過程或函數裏調用自身; (2) 在使用遞增歸策略時,必須有壹個明確的遞歸結束條件,稱為遞歸出口。 遞歸算法壹般用於解決三類問題: (1)數據的定義是按遞歸定義的。(Fibonacci函數) (2)問題解法按遞歸算法實現。(回溯) (3)數據的結構形式是按遞歸定義的。(樹的遍歷,圖的搜索) 遞歸的缺點: 遞歸算法解題的運行效率較低。在遞歸調用的過程當中系統為每壹層的返回點、局部量等開辟了棧來存儲。遞歸次數過多容易造成棧溢出等。