一個(gè)遞歸函數(shù)的成長(zhǎng)史

昨天看了歸并排序和快速排序泡徙,排序的思路都理解了,代碼是使用遞歸實(shí)現(xiàn)的漏峰,但是在單步調(diào)試的時(shí)候糠悼,斷點(diǎn)跳來(lái)跳去,整個(gè)人都暈了浅乔,所以我執(zhí)著的精神又開始發(fā)揮作用了倔喂,在網(wǎng)上找了個(gè)類似的例子,一步步調(diào)試過(guò)來(lái)靖苇,終于斷點(diǎn)如我所愿的跳了出來(lái)席噩。決定把思路整理一下,這也是菜鳥成長(zhǎng)史的一小步吧贤壁,言歸正傳悼枢。

一、什么是遞歸函數(shù)脾拆?

遞歸函數(shù)即自調(diào)用函數(shù)馒索,在函數(shù)體內(nèi)直接或間接調(diào)用自己(也就是調(diào)用的函數(shù)是自己本身)莹妒。

二、函數(shù)的調(diào)用機(jī)制

1绰上、需要設(shè)置自調(diào)用的條件旨怠,如果滿足條件,則調(diào)用函數(shù)本身渔期,如果不滿足條件运吓,則終止本函數(shù)的自調(diào)用,然后把目前流程的主控權(quán)交回給上一層函數(shù)來(lái)執(zhí)行疯趟;

2拘哨、每調(diào)用一次函數(shù)就“入棧”一次信峻,函數(shù)執(zhí)行完了倦青,就“出棧”一次盹舞;

三产镐、遞歸的評(píng)價(jià)

1、缺點(diǎn):遞歸增加了系統(tǒng)的開銷踢步,從時(shí)間上癣亚,執(zhí)行調(diào)用與返回的額外工作需要占用一定的時(shí)間,從空間上來(lái)講获印,每遞歸一次述雾,就要入棧一次,即棧內(nèi)存就多占用一截兼丰。

2玻孟、優(yōu)點(diǎn):簡(jiǎn)化程序設(shè)計(jì)、程序容易讀懂鳍征。

下面這幾個(gè)是個(gè)人覺得關(guān)于遞歸函數(shù)和遞歸函數(shù)的執(zhí)行機(jī)制黍翎,寫的很容易理解的博文:

遞歸函數(shù)理解

?遞歸函數(shù)的執(zhí)行機(jī)制和運(yùn)用

深入理解遞歸函數(shù)的調(diào)用過(guò)程


四、華麗麗的成長(zhǎng)史

這個(gè)是我參考的博文艳丛,遞歸算法示例匣掸,寫的很詳細(xì)、通俗易懂氮双。

首先貼出代碼:

遞歸調(diào)用代碼

下面是程序的運(yùn)行結(jié)果:

運(yùn)行結(jié)果

下面是整個(gè)程序的執(zhí)行過(guò)程旺聚;

運(yùn)行過(guò)程

對(duì)結(jié)果進(jìn)行分析:

運(yùn)行結(jié)果

a、步驟10~14重復(fù)了步驟4~8眶蕉,因?yàn)樗鼈兌颊{(diào)用了p(1)砰粹,所以結(jié)果5重復(fù)了結(jié)果4,輸出都是1;

b碱璃、步驟17~29重復(fù)了步驟3~15弄痹,因?yàn)樗鼈兌颊{(diào)用了p(2),所以第6嵌器、7肛真、8個(gè)結(jié)果重復(fù)了第3、4爽航、5個(gè)結(jié)果蚓让,輸出都是2、1讥珍、1历极;

c、步驟31~58重復(fù)了步驟2~29衷佃,因?yàn)樗鼈兌颊{(diào)用了p(3)趟卸,所以第9~15個(gè)結(jié)果重復(fù)了第2~8個(gè)結(jié)果,輸出都是3氏义、2锄列、1、1惯悠、2邻邮、1、1克婶。

總之筒严,要理解函數(shù)遞歸調(diào)用的機(jī)制必須明白每對(duì)函數(shù)進(jìn)行一次調(diào)用,函數(shù)就入棧一次鸠补,函數(shù)執(zhí)行完了萝风,就出棧一次嘀掸,如果還不是很明白紫岩,可以結(jié)合程序運(yùn)行過(guò)程的說(shuō)明,對(duì)代碼進(jìn)行單步調(diào)試睬塌,這樣會(huì)比較容易理解泉蝌。


邁過(guò)了遞歸的坎兒,終于可以整理歸并排序和快速排序的知識(shí)點(diǎn)了揩晴,很開森的我于是就屁顛屁顛的跟著師父去興慶公園賞花啦勋陪!

P(4)
P(3)
P(2)
P(1)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市硫兰,隨后出現(xiàn)的幾起案子诅愚,更是在濱河造成了極大的恐慌,老刑警劉巖劫映,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件违孝,死亡現(xiàn)場(chǎng)離奇詭異刹前,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)雌桑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門喇喉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人校坑,你說(shuō)我怎么就攤上這事拣技。” “怎么了耍目?”我有些...
    開封第一講書人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵膏斤,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我制妄,道長(zhǎng)掸绞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任耕捞,我火速辦了婚禮衔掸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘俺抽。我一直安慰自己敞映,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開白布磷斧。 她就那樣靜靜地躺著振愿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪弛饭。 梳的紋絲不亂的頭發(fā)上冕末,一...
    開封第一講書人閱讀 49,036評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音侣颂,去河邊找鬼档桃。 笑死,一個(gè)胖子當(dāng)著我的面吹牛憔晒,可吹牛的內(nèi)容都是我干的藻肄。 我是一名探鬼主播,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼拒担,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼嘹屯!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起从撼,我...
    開封第一講書人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤州弟,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體婆翔,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡桐经,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了浙滤。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片阴挣。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖纺腊,靈堂內(nèi)的尸體忽然破棺而出畔咧,到底是詐尸還是另有隱情,我是刑警寧澤揖膜,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布誓沸,位于F島的核電站,受9級(jí)特大地震影響壹粟,放射性物質(zhì)發(fā)生泄漏拜隧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一趁仙、第九天 我趴在偏房一處隱蔽的房頂上張望洪添。 院中可真熱鬧,春花似錦雀费、人聲如沸干奢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)忿峻。三九已至,卻和暖如春辕羽,著一層夾襖步出監(jiān)牢的瞬間逛尚,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工刁愿, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留绰寞,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓酌毡,卻偏偏與公主長(zhǎng)得像克握,于是被迫代替她去往敵國(guó)和親蕾管。 傳聞我的和親對(duì)象是個(gè)殘疾皇子枷踏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容