遞歸一定要用到棧嗎 程序的遞歸算法與非遞歸有什么區(qū)別?
程序的遞歸算法與非遞歸有什么區(qū)別?遞歸算法是一種直接或間接調(diào)用自身的算法。在計算機程序設(shè)計中,遞歸算法對于解決一大類問題是非常有效的。它往往使算法的描述簡潔易懂。遞歸是在過程或函數(shù)中調(diào)用自身。在使用遞
程序的遞歸算法與非遞歸有什么區(qū)別?
遞歸算法是一種直接或間接調(diào)用自身的算法。在計算機程序設(shè)計中,遞歸算法對于解決一大類問題是非常有效的。它往往使算法的描述簡潔易懂。遞歸是在過程或函數(shù)中調(diào)用自身。在使用遞歸策略時,必須有一個顯式的遞歸結(jié)束條件,稱為遞歸退出。遞歸算法通常非常簡單,但效率較低。因此,不建議使用遞歸算法來設(shè)計程序。在遞歸調(diào)用過程中,系統(tǒng)打開一個棧來存儲每一層的返回點和局部數(shù)量。太多的遞歸很容易導(dǎo)致堆棧溢出。