X4-1、java數(shù)據(jù)結(jié)構(gòu)---遞歸【2020-12-6】

總目錄:地址如下看總綱

http://www.itdecent.cn/p/929ca9e209e8

1、何為遞歸?

遞歸就是方法自己調(diào)用自己,每次調(diào)用時(shí)傳入不同的變量.遞歸有助于編程者解決復(fù)雜的問題,同時(shí)可以讓代碼變得簡(jiǎn)潔。

2、遞歸運(yùn)行機(jī)制

image.png

image.png

image.png

image.png

3、遞歸的應(yīng)用場(chǎng)景

1、各種數(shù)學(xué)問題如: 8皇后問題 , 漢諾塔, 階乘問題, 迷宮問題, 球和籃子的問題(google編程大賽)
2、各種算法中也會(huì)使用到遞歸,比如快排,歸并排序,二分查找,分治算法等.
3、將用棧解決的問題-->遞歸代碼比較簡(jiǎn)潔

4、遞歸必須遵守的規(guī)則

1、執(zhí)行一個(gè)方法時(shí),就創(chuàng)建一個(gè)新的受保護(hù)的獨(dú)立空間(??臻g) --- 默認(rèn)遵守了(main)
2、方法的局部變量是獨(dú)立的,不會(huì)相互影響, 比如n變量
3、如果方法中使用的是引用類型變量(比如數(shù)組),就會(huì)共享該引用類型的數(shù)據(jù).(上圖堆中的)
4、遞歸必須向退出遞歸的條件逼近,否則就是無限遞歸,出現(xiàn)StackOverflowError,棧溢出)
5、當(dāng)一個(gè)方法執(zhí)行完畢,或者遇到return,就會(huì)返回,遵守誰調(diào)用,就將結(jié)果返回給誰,同時(shí)當(dāng)方法執(zhí)行完畢或者返回時(shí),該方法也就執(zhí)行完畢。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容