更新時(shí)間:2019-09-16 15:42:15 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽4390次
今天動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)小編為大家介紹“java遞歸算法詳解”,希望通過(guò)此文大家能夠掌握java遞歸算法,下面就隨小編一起看看什么java遞歸算法?
1、java遞歸算法基本思路
Java遞歸算法是基于Java語(yǔ)言實(shí)現(xiàn)的遞歸算法。遞歸算法是一種直接或者間接調(diào)用自身函數(shù)或者方法的算法。遞歸算法實(shí)質(zhì)是把問(wèn)題分解成規(guī)??s小的同類(lèi)問(wèn)題的子問(wèn)題,然后遞歸調(diào)用方法表示問(wèn)題的解。遞歸往往能給我們帶來(lái)非常簡(jiǎn)潔非常直觀的代碼形式,從而使我們的編碼大大簡(jiǎn)化,然而遞歸的思維確實(shí)跟我們的常規(guī)思維相逆的,通常都是從上而下的思維問(wèn)題,而遞歸趨勢(shì)從下往上的進(jìn)行思維。
2、java遞歸算法解決問(wèn)題的特點(diǎn)
遞歸就是方法里調(diào)用自身
在使用遞歸策略時(shí),必須有一個(gè)明確的遞歸結(jié)束條件,稱(chēng)為遞歸出口
遞歸算法代碼顯得很簡(jiǎn)潔,但遞歸算法解題的運(yùn)行效率較低。所以不提倡用遞歸設(shè)計(jì)程序。
在遞歸調(diào)用的過(guò)程中系統(tǒng)為每一層的返回點(diǎn)、局部量等開(kāi)辟了棧來(lái)存儲(chǔ)。遞歸次數(shù)過(guò)多容易造成棧溢出等,所以一般不提倡用遞歸算法設(shè)計(jì)程序。
在做遞歸算法的時(shí)候,一定把握出口,也就是做遞歸算法必須要有一個(gè)明確的遞歸結(jié)束條件。這一點(diǎn)是非常重要的。其實(shí)這個(gè)出口就是一個(gè)條件,當(dāng)滿(mǎn)足了這個(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://m.dabaquan.cn/xiazai/2598.html
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話(huà)與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743