遞歸算法

?? 遞歸算法,簡單卻不簡單的一種算法衷快。

??? 遞歸算法是把問題轉(zhuǎn)化為規(guī)恼喊危縮小了的同類問題的子問題都伪。然后遞歸調(diào)用函數(shù)(或過程)來表示問題的解。??????? ——百度百科-遞歸算法

??? 遞歸算法是使用遞歸在程序設(shè)計語言中廣泛使用的一種算法帝璧,遞歸是什么的烁?遞歸是程序調(diào)用自身的編程技巧(百度百科)。遞歸在計算機科學(xué)中是指一種通過重復(fù)將問題分解為同類的子問題而解決問題的方法(維基百科)襟雷。

??? 說白了咧虎,遞歸是一種方法砰诵,是對自身的調(diào)用茁彭。打個比方,我想吃蘋果了哲嘲,然后我做了一個計劃眠副。這蘋果在一個程序里面就是數(shù)據(jù),然后我制定的吃蘋果的這一套計劃毫别,就是方法娃弓。我按照我制定的計劃吃蘋果就是用方法處理數(shù)據(jù)台丛。我是怎么吃蘋果的挽霉,我拿起桌子上這個蘋果(這蘋果是砸到牛頓的蘋果),然后咬了一口(現(xiàn)在成喬布斯的了)实胸,然后在放回桌子上,我吃了蘋果了涮瞻,這計劃就結(jié)束了。有說生音,你這蘋果沒吃完呢宁否,沒吃完就對了,我計劃就是吃蘋果,沒說要吃完蘋果锅铅,我要吃完蘋果也簡單,再拿起來贼邓,咬一口,放下统舀,然后拿起來绰筛,咬一口衡蚂,放下......直到我最后剩一口蘋果核年叮,我不能吃了只损,我這就結(jié)束了跃惫。


啃過一口的蘋果

??? 我把蘋果從一個完整的蘋果一步一步吃到蘋果核艾栋,這個過程就是遞歸爆存。遞歸有四個法則:

??????????? 第一個是基準情形先较,是不用遞歸就能求解。我吃蘋果,這次我不用遞歸了债朵,我不拿起來放下粤咪,太費事宪塔,我一次拿起來冠跷,咔嚓咔嚓一口一口吃完霉赡,這是迭代重挑,最終結(jié)果一樣玻粪,我剩下了蘋果核伦仍。用遞歸方式谓苟,我吃蘋果這過程协怒,最后剩一口蘋果核涝焙,我不能再吃了,這就是基準情形仑撞,也就是遞歸出口,從這里我結(jié)束了我吃蘋果這過程岸浑,我結(jié)束了遞歸责静。

??????????? 第二個法則是不斷推進盖桥,也就是我的遞歸必須能朝著我的基準情形的方向推進腰鬼。我每吃一口蘋果熄赡,我就離蘋果核拧篮,也就是基準情形更進一步赏参。

??????????? 第三個法則是設(shè)計法則,是假設(shè)所有的遞歸調(diào)用都能運行。比如我吃的這個蘋果小染,一口下去裤翩,嗬,半條蟲子调榄,我這沒法吃了踊赠,這就沒法結(jié)束了,從某種意義上講振峻,我這沒做容錯處理臼疫,這遞歸就不算遞歸了,因為沒法繼續(xù)扣孟。

??????????? 第四個法則是合成效益法則烫堤,是在求解一個問題的同一個實例時候,切勿在不同的遞歸調(diào)用中做重復(fù)性工作凤价。什么意思呢鸽斟,就是我吃蘋果不喜歡吃皮,然后我在開始的時候(吃蘋果當然不能再所有時候都吃到蘋果皮利诺,只是有皮的地方能吃到)吃一口蘋果富蓄,把皮吐出來,吃一口吐一口慢逾,我這就重復(fù)了立倍,影響效益了。所以我直接在開始把皮削好就成了侣滩。

??? 我在文章的開頭說過這么一句話:遞歸算法口注,簡單卻不簡單的一種算法。為什么我說遞歸算法簡單卻不簡單君珠?

? ? ? ? 從算法本身講寝志,算法的級別、難度、理解度都是極其簡單的材部,深一步能有分治策略毫缆,這是個底層的算法,可以說得上是一種元算法了乐导,況且就理解起來而言苦丁,遞歸算法算得上是最簡單的一種算法了∈薅#可我又說遞歸算法是不簡單的一種算法芬骄,遞歸算法本身的步驟是有限的猾愿,算法的深度是有限的鹦聪,但是算法能執(zhí)行的深度是無限的。我的老師給我講過一個故事:UNIX系統(tǒng)的第一個版本的系統(tǒng)蒂秘,本身是用了六個程序塊相互遞歸調(diào)用泽本,然后組成了這個完美、優(yōu)雅的UNIX系統(tǒng)(僅從授課教師聽到姻僧,未曾在網(wǎng)絡(luò)找到文字記載)规丽。

??? 計算機科學(xué)大師尼克勞斯·維爾特描述遞歸的一句話:遞歸的強大之處在于它允許用戶用有限的語句描述無限的對象。因此撇贺,在計算機科學(xué)中赌莺,遞歸可以被用來描述無限步的運算,盡管描述運算的程序是有限的松嘶。

?? 完美的遞歸艘狭,簡陋的遞歸。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末翠订,一起剝皮案震驚了整個濱河市巢音,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌尽超,老刑警劉巖官撼,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異似谁,居然都是意外死亡傲绣,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門巩踏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來秃诵,“玉大人,你說我怎么就攤上這事蛀缝∏炅矗” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長嗤练。 經(jīng)常有香客問我榛了,道長,這世上最難降的妖魔是什么煞抬? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任霜大,我火速辦了婚禮,結(jié)果婚禮上革答,老公的妹妹穿的比我還像新娘战坤。我一直安慰自己,他們只是感情好残拐,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布途茫。 她就那樣靜靜地躺著,像睡著了一般溪食。 火紅的嫁衣襯著肌膚如雪囊卜。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天错沃,我揣著相機與錄音栅组,去河邊找鬼。 笑死枢析,一個胖子當著我的面吹牛玉掸,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播醒叁,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼司浪,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了辐益?” 一聲冷哼從身側(cè)響起断傲,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎智政,沒想到半個月后认罩,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡续捂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年垦垂,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片牙瓢。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡劫拗,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出矾克,到底是詐尸還是另有隱情页慷,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站酒繁,受9級特大地震影響滓彰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜州袒,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一揭绑、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧郎哭,春花似錦他匪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至陈惰,卻和暖如春畦徘,著一層夾襖步出監(jiān)牢的瞬間毕籽,已是汗流浹背抬闯。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留关筒,地道東北人溶握。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像蒸播,于是被迫代替她去往敵國和親睡榆。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355

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