更新時(shí)間:2019-09-16 15:42:15 來源:動(dòng)力節(jié)點(diǎn) 瀏覽4893次
今天動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)小編為大家介紹“java遞歸算法詳解”,希望通過此文大家能夠掌握java遞歸算法,下面就隨小編一起看看什么java遞歸算法?

1、java遞歸算法基本思路
Java遞歸算法是基于Java語言實(shí)現(xiàn)的遞歸算法。遞歸算法是一種直接或者間接調(diào)用自身函數(shù)或者方法的算法。遞歸算法實(shí)質(zhì)是把問題分解成規(guī)模縮小的同類問題的子問題,然后遞歸調(diào)用方法表示問題的解。遞歸往往能給我們帶來非常簡(jiǎn)潔非常直觀的代碼形式,從而使我們的編碼大大簡(jiǎn)化,然而遞歸的思維確實(shí)跟我們的常規(guī)思維相逆的,通常都是從上而下的思維問題,而遞歸趨勢(shì)從下往上的進(jìn)行思維。
2、java遞歸算法解決問題的特點(diǎn)
遞歸就是方法里調(diào)用自身
在使用遞歸策略時(shí),必須有一個(gè)明確的遞歸結(jié)束條件,稱為遞歸出口
遞歸算法代碼顯得很簡(jiǎn)潔,但遞歸算法解題的運(yùn)行效率較低。所以不提倡用遞歸設(shè)計(jì)程序。
在遞歸調(diào)用的過程中系統(tǒng)為每一層的返回點(diǎn)、局部量等開辟了棧來存儲(chǔ)。遞歸次數(shù)過多容易造成棧溢出等,所以一般不提倡用遞歸算法設(shè)計(jì)程序。
在做遞歸算法的時(shí)候,一定把握出口,也就是做遞歸算法必須要有一個(gè)明確的遞歸結(jié)束條件。這一點(diǎn)是非常重要的。其實(shí)這個(gè)出口就是一個(gè)條件,當(dāng)滿足了這個(gè)條件的時(shí)候我們就不再遞歸了。
3、java遞歸算法代碼示例:
public class Factorial {
//this is a recursive function
int fact(int n){
if (n==1) return 1;
return fact(n-1)*n;
}
}
public class TestFactorial {
public static void main(String[] args) {
// TODO Auto-generated method stub
Factorial factorial=new Factorial();
System.out.println("factorial(5)="+factorial.fact(5));
}
}
代碼執(zhí)行流程圖如下:

以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)小編介紹的“java遞歸算法詳解”的內(nèi)容,希望對(duì)大家有幫助,更多java最新資訊請(qǐng)繼續(xù)關(guān)注動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)官網(wǎng),每天會(huì)有精彩內(nèi)容分享與你。
相關(guān)免費(fèi)視頻教程推薦
java遞歸視頻教程下載:http://www.soulsinkind.com/xiazai/2598.html
相關(guān)閱讀
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)