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