鍍金池/ 問(wèn)答/人工智能  C++/ 關(guān)于算法中使用遞歸問(wèn)題

關(guān)于算法中使用遞歸問(wèn)題

使用遞歸算法雖然在程序上可讀性較好,但有諸多問(wèn)題:

  1. 隨著計(jì)算規(guī)模的增大,可能會(huì)導(dǎo)致調(diào)用棧溢出
  2. 每次函數(shù)調(diào)用,都有時(shí)間與空間上的開(kāi)銷(xiāo)。性能不太好
  3. 不易測(cè)試,規(guī)模小時(shí),代碼是正確的;不能保證規(guī)模大時(shí)也正確。

問(wèn)題:是不是在我們平時(shí)寫(xiě)代碼時(shí),要盡量避免使用遞歸,而用等價(jià)的循環(huán)代替?

謝謝!

回答
編輯回答
懶洋洋

“尾遞歸”可以了解下,有遞歸的優(yōu)點(diǎn),同時(shí)不用擔(dān)心棧溢出。

2018年4月30日 20:31
編輯回答
影魅

怎么優(yōu)雅怎么來(lái)啊

2017年7月8日 11:56
編輯回答
奧特蛋

這個(gè)還是看具體情況,如果有穩(wěn)定的非遞歸算法建議還是采用。
但一些問(wèn)題基本上非遞歸太難處理了。

2018年9月4日 10:42