久久午夜无码,国产中文资源,Chinese熟女熟妇2乱2,高清五码d一区

簡述遞歸算法的優(yōu)缺點(深究遞歸和迭代的區(qū)別優(yōu)缺點及實例對比)

簡述遞歸算法的優(yōu)缺點(深究遞歸和迭代的區(qū)別優(yōu)缺點及實例對比)

呂飛翰 2025-04-12 科技 14 次瀏覽 0個評論
1.迭代是人,遞歸是神!

從“編程之美”的角度看,可以借用一句非常經(jīng)典的話:“迭代是人,遞歸是神!”來從宏觀上對二者進行把握。

從概念上講,遞歸就是指程序調用自身的編程思想,即一個函數(shù)調用本身;迭代是利用已知的變量值,根據(jù)遞推公式不斷演進得到變量新值的編程思想。

2.遞歸

遞歸就是函數(shù)自己調用自己。

2.1構成遞歸需具備的條件:子問題須與原始問題為同樣的事,且更為簡單;不能無限制地調用本身,須有個出口,化簡為非遞歸狀況處理。2.2遞歸的基本原理

第一:每一級的函數(shù)調用都有自己的變量。

第二:每一次函數(shù)調用都會有一次返回。

第三:遞歸函數(shù)中,位于遞歸調用前的語句和各級被調用函數(shù)具有相同的執(zhí)行順序。

第四:遞歸函數(shù)中,位于遞歸調用后的語句的執(zhí)行順序和各個被調用函數(shù)的順序相反。

第五:雖然每一級遞歸都有自己的變量,但是函數(shù)代碼并不會得到復制。

2.3遞歸優(yōu)缺點深究遞歸和迭代的區(qū)別、優(yōu)缺點及實例對比

2.4編寫一個遞歸函數(shù)這個遞歸函數(shù)的功能是什么,怎樣調用這個函數(shù),即設計好遞歸函數(shù)的返回值和參數(shù)列表什么時候應該結束這個遞歸,它的邊界條件(出口)是什么(邊界條件)在非邊界情況時,怎樣從第n層轉變成第n+1層(遞推公式)例:int f(int n) {  //出口 if (n > 0) { return n + f(n - 1); } else { return 0; }}解析:深究遞歸和迭代的區(qū)別、優(yōu)缺點及實例對比

具體步驟:深究遞歸和迭代的區(qū)別、優(yōu)缺點及實例對比

遞歸遞歸,有遞就得有歸(出口),只遞不歸會導致程序崩潰。

要得到n - 1的積直接調用 f(x) 這個函數(shù)就行了,完全不需要思考這個函數(shù)怎么執(zhí)行的。

3.例題:走樓梯3.1題目描述:

一個臺階總共有n級,如果一次可以跳1級,也可以跳2級。求總共有多少總跳法。I第一行輸入T,表示有多少個測試數(shù)據(jù)。接下來T行,每行輸入一個數(shù)n,表示臺階的階數(shù)。輸出時每一行對應一個輸出。

假如一共有三級臺階,一共有多少種走法?深究遞歸和迭代的區(qū)別、優(yōu)缺點及實例對比

假設有n級臺階,一共有多少種走法?深究遞歸和迭代的區(qū)別、優(yōu)缺點及實例對比

當n > 2 時,如果走1級有多少種走法 + 如果走2級有多少種走法,就是n級臺階所有的走法。

4.求n!遞歸法int fun(int n) { if (n == 1) { return 1; } else { return n * fun(n - 1); }}5.求n!迭代法int fun(int n) { int x = 1; for (int i = 2; i <= n; i++) { x *= i; } return x;}6.迭代

迭代與普通循環(huán)的區(qū)別是:迭代時,循環(huán)代碼中參與運算的變量同時是保存結果的變量,當前保存的結果作為下一次循環(huán)計算的初始值。

遞歸與普通循環(huán)的區(qū)別是:循環(huán)是有去無回,而遞歸則是有去有回(因為存在終止條件)。

在循環(huán)的次數(shù)較大的時候,迭代的效率明顯高于遞歸。

6.1現(xiàn)實中的迭代

迭代的方式有所不同,假如有個產(chǎn)品要求6個月交貨,我在第一個月就會拿出一個產(chǎn)品來,當然,這個產(chǎn)品會很不完善,會有很多功能還沒有添加進去,bug很多,還不穩(wěn)定,但客戶看了以后,會提出更詳細的修改意見,這樣,你就知道自己距離客戶的需求有多遠,我回家以后,再花一個月,在上個月所作的需求分析、框架設計、代碼、測試等等的基礎上,進一步改進,又拿出一個更完善的產(chǎn)品來,給客戶看,讓他們提意見。就這樣,我的產(chǎn)品在功能上、質量上都能夠逐漸逼近客戶的要求,不會出現(xiàn)我花了大量心血后,直到最后發(fā)布之時才發(fā)現(xiàn)根本不是客戶要的東西的情況。

6.2優(yōu)勢

這個過程也很像打游戲,你剛開始玩,一下子就輸了,但是隨著你玩的次數(shù)越來越多,你的技藝就越來越精湛,而這個結果,不是你在開始玩游戲的時候,規(guī)劃出來的,而是在你玩的過程中,通過不斷的輸不斷的輸,練出來的。

所以,你能達成的結果,都是在你做的過程中,不斷試錯,不斷調整,不斷精進,最后自然而然得到的一個結果。

所以,我們不能把迭代簡單的理解為“升級”。

升級,更多描述的是一個結果,是一種直接的,一次性的,達成的一個目標,是一種線性的進程。

而迭代,是通過無數(shù)次,不斷的,重復的,接近一個目標,折返接近,再折返再接近,最終達到目標。它不是一次性完成的,是通過不斷重復的,但每次重復又比之前更好一點,這樣一種非線性的進程。

現(xiàn)在我們把“迭代”的關鍵詞拆解一下:

1.重復:

不斷的重復做,而不是一次性的完成。

2.改進

在做的過程中不斷的改進、調整、優(yōu)化。

3.認知升級

迭代的過程就是不斷提高認知的過程,升級只是這個過程的一個結果。

轉載請注明來自夕逆IT,本文標題:《簡述遞歸算法的優(yōu)缺點(深究遞歸和迭代的區(qū)別優(yōu)缺點及實例對比)》

每一天,每一秒,你所做的決定都會改變你的人生!

發(fā)表評論

快捷回復:

評論列表 (暫無評論,14人圍觀)參與討論

還沒有評論,來說兩句吧...

日中国女人屄| 亚洲精品国产自在久久出水| 日本久网| 国产伦乱视频在线观看| 亚洲性人人天天夜夜| 亚洲无码免费视频在线观看| 456老熟妇| 国产激情久久思思热| 久久精品国产一区二区| 色噜噜日韩精品欧美一区二区三区| 老牛亚洲精品无码AV| 欧美精品高潮无套| 制服丝袜日韩中文字幕在线 | 亚洲午夜亚洲精品国产成人| 亚洲一级在线看电影| 午夜激情无码小说| 亚洲欧美动漫在线制丝袜国产| 亚洲VA中文字幕不卡无码| 久久狠狠久久狠狠综合色| 色一区二区三区三州| 波多野结衣乳巨码无在线观看| 一级毛片在线观亚洲| 亚洲无码一区二区三区| 柘城县| 国内网友自拍露脸在线视频| 国产AV综合久久| 午夜老湿机动态视频| 激情国产原创在线观看| 少妇高潮惨叫喷水正在播放水 | 亚洲区小说区图片区QVOD按摩| 久久国产精品日本波多野结衣| 欧美色图第一页| 日韩黄片精品视频| 精品综合久久久久久8888| 中文字幕亚洲制服丝袜无码| 人妻有码中文字幕在线不卡| 久久无码一区| 欧美日韩精品一级观看| 亚洲国产日韩一级二级三级| 四虎永久在线精品免费视频一区| 中文字幕V亚洲ⅤV天堂|