麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > 遞歸有什么優(yōu)缺點(diǎn)?

遞歸有什么優(yōu)缺點(diǎn)?

來源:千鋒教育
發(fā)布人:xqq
時(shí)間: 2023-10-10 23:54:36 1696953276

一、遞歸的優(yōu)缺點(diǎn)

遞歸是什么

程序調(diào)用自身的編程技巧稱為遞歸( recursion)。遞歸做為一種算法在程序設(shè)計(jì)語言中廣泛應(yīng)用。

一個(gè)過程或函數(shù)在其定義或說明中有直接或間接調(diào)用自身的一種方法,它通常把一個(gè)大型復(fù)雜的問題層層轉(zhuǎn)化為一個(gè)與原問題相似的規(guī)模較小的問題來求解,遞歸策略只需少量的程序就可描述出解題過程所需要的多次重復(fù)計(jì)算,大大地減少了程序的代碼量。

遞歸的能力在于用有限的語句來定義對(duì)象的無限集合。一般來說,遞歸需要有邊界條件、遞歸前進(jìn)段和遞歸返回段。當(dāng)邊界條件不滿足時(shí),遞歸前進(jìn);當(dāng)邊界條件滿足時(shí),遞歸返回。

遞歸的優(yōu)缺點(diǎn)

優(yōu)點(diǎn):代碼更簡(jiǎn)潔清晰,可讀性更好

遞歸的話函數(shù)調(diào)用是有開銷的,而且遞歸的次數(shù)受堆棧大小的限制。

缺點(diǎn):

時(shí)間和空間消耗比較大。每一次函數(shù)調(diào)用都需要在內(nèi)存棧中分配空間以保存參數(shù),返回地址以及臨時(shí)變量,而且往棧里面壓入數(shù)據(jù)和彈出都需要時(shí)間。

另外遞歸會(huì)有重復(fù)的計(jì)算。遞歸本質(zhì)是把一個(gè)問題分解為多個(gè)問題,如果這多個(gè)問題存在重復(fù)計(jì)算,有時(shí)候會(huì)隨著n成指數(shù)增長。斐波那契的遞歸就是一個(gè)例子。

遞歸還有棧溢出的問題,每個(gè)進(jìn)程的棧容量是有限的。由于遞歸需要系統(tǒng)堆棧,所以空間消耗要比非遞歸代碼要大很多。而且,如果遞歸深度太大,可能系統(tǒng)撐不住。

延伸閱讀:

二、遞歸的程序特性

優(yōu)雅性

相比其他解法(比如迭代法),使用遞歸法,你會(huì)發(fā)現(xiàn)只需少量程序就可描述出解題過程,大大減少了程序的代碼量,而且很好理解。遞歸的能力在于用有限的語句來定義對(duì)象的無限集合。

反向性

由于遞歸調(diào)用程序需要維護(hù)調(diào)用棧,而棧(我們?cè)谏衔奶徇^)具有后進(jìn)先出的特征,因此遞歸程序適合滿足取反類需求。我們?cè)诘谖宀糠钟幸恍┚幊虒?shí)踐,比如字符串取反,鏈表取反等相關(guān)有趣的算法問題。

遞推關(guān)系

遞歸程序可以較明顯的發(fā)現(xiàn)遞推關(guān)系,反過來也可以這么說,具有遞推關(guān)系的問題基本都可以通過遞歸求解(當(dāng)然也許有性能更佳的解法,但遞歸絕對(duì)是一種選擇)。遞推關(guān)系常見問題有楊輝三角、階乘計(jì)算。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
做進(jìn)度計(jì)劃橫道圖用什么軟件?

一、做進(jìn)度計(jì)劃橫道圖的軟件1. Microsoft ProjectMicrosoft Project是微軟公司推出的一款專業(yè)的項(xiàng)目管理軟件,擁有強(qiáng)大的進(jìn)度管理功能,能夠幫...詳情>>

2023-10-10 23:44:24
甘特圖軟件有哪些?

一、Microsoft ProjectMicrosoft Project是一款強(qiáng)大的項(xiàng)目管理軟件,它提供了豐富的功能和靈活性,適用于大型和復(fù)雜的項(xiàng)目管理。二、Smartsheet...詳情>>

2023-10-10 23:36:02
物聯(lián)網(wǎng)傳感器有哪些?

一、物聯(lián)網(wǎng)傳感器物聯(lián)網(wǎng)(IoT)是指將各種物理設(shè)備通過網(wǎng)絡(luò)連接起來,實(shí)現(xiàn)信息的交換和協(xié)作的技術(shù)。物聯(lián)網(wǎng)的核心是傳感器,它們可以感知和測(cè)量...詳情>>

2023-10-10 23:19:12
離線數(shù)倉和實(shí)時(shí)數(shù)倉區(qū)別?

一、離線數(shù)倉和實(shí)時(shí)數(shù)倉區(qū)別數(shù)據(jù)倉庫(Data Warehouse)是一個(gè)面向主題的、集成的、相對(duì)穩(wěn)定的、反映歷史變化的數(shù)據(jù)集合,用于支持管理決策。數(shù)...詳情>>

2023-10-10 23:14:04
c語言相比c++有什么優(yōu)勢(shì)?

一、c語言相比c++有什么優(yōu)勢(shì)c語言和c++是兩種非常流行和強(qiáng)大的編程語言,它們都有各自的特點(diǎn)和應(yīng)用領(lǐng)域。c語言是一種面向過程的語言,它簡(jiǎn)潔高...詳情>>

2023-10-10 23:11:30
主站蜘蛛池模板: 自拍另类综合欧美小说| 日韩三级电影院| 精品国内自产拍在线视频| 好痛太长太深弄死我了视频| 久久综合九色综合欧美狠狠| 在公车上被一个接一个| 夫妇交换性3中文字幕| 玉蒲团之偷情宝典| 黑人巨茎大战欧美白妇| а√在线地址最新版| 黑人猛男大战俄罗斯白妞| 又黄又爽又色又刺激的视频| 在公交车上弄到高c了公交车视频| 攵女yin乱合集高h小丹| 国产日韩在线亚洲字幕中文| 天天在线天天看成人免费视频| 欧美另类专区| 永久黄网站色视频免费观看 | 国产精品成人va| 国产伦子沙发午休| 久草香蕉在线| 草逼视频免费看| 永久看一二三四线| 夜来香免费观看视频在线| 优优里番acg※里番acg绅士黑| 丰乳娇妻| 欧美成人精品第一区| 91精品免费不卡在线观看| 调教h视频| 性大毛片视频| 两对夫妇交换野营| 波多野结衣潜入搜查官| 2019天天干夜夜操| 91caoprom| 亚洲欧美小视频| a国产乱理伦片在线观看夜| 男男动漫全程肉无删减有什么| 野花视频在线观看免费观看最新| 玉蒲团之天下第一| 最近免费最新高清中文字幕韩国 | 亲密爱人在线观看韩剧完整版免费 |