遞迴演算法的理解

2021-07-26 03:47:12 字數 757 閱讀 7434

今天我對遞迴演算法做了乙個徹底的總結,總算是悟出了一些東西

遞迴演算法是軟體設計中解決遞迴問題的思想。什麼是遞迴。我們可以從字面意思去理解他的意思。遞迴遞迴,先遞再歸。遞的意思就是遞推,即從高向下逐步展開。歸的意思就是回歸,即從下向上進行。也就是說當你拿到了乙個複雜的東西,你不知道怎麼解決。你可以對他進行拆解,拆解到你能解決的情況,然後從你能夠解決的情況入手逐步解決你上層不能解決的問題。打個比方,你要求5的階乘,學過數學的同學應該知道5!=5*4*3*2*1,但是5!交給計算機怎麼處理呢,他可不知道5的前乙個整數是4。所以就得寫乙個遞迴演算法來幫助求解決。通過上式可以發現:5!=5*(5-1)!,4!=4*(4-1)!,3!=3*(3-1)!,2!=2*(2-1)!,1!=1;(以上的思想就是「遞」的體現),一開始你無法得知5!是多少,但是你可以將他進行拆解,拆解為5*4!,然後依次逐層遞推,就可以得到最簡單的,計算機也知道的1!=1。得到1!=1後(即遞推到了最底層),這時就可以回歸了,回歸也是一步一步來的。得到了1!=1;將該值返回給2!,就得到2!=2*1(此處的1是由1!=1得到的),以此方法逐層回歸,最後即可得到5!的值。以上例子很好的體現了遞迴的思想。以下是該例子的**部分。

另乙個遞迴的例子是費波拉契數列,其核心思想也是遞迴,與階乘的演算法大致相同,不再做過多闡述,以下是**

遞迴演算法的理解方式

對於遞迴演算法相信有很多的同學會有這樣的疑惑,這裡先舉乙個例子 通過 遞迴 與 迴圈 的對比 來增加理解。我們一定要記住遞迴是可以來實現我們對於重複的子問題進行呼叫,但是需要注意的是我們不斷地遞迴進行下去一定要一步一步的回去,就像我們走進一間房子,開啟第乙個大門後發現有第二個門,開啟第二個門發現還有...

遞迴演算法的簡單理解

遞迴演算法在我們的處理各種問題的時候大量的使用,是乙個可以將大型的問題簡單化的演算法 對遞迴的理解 遞迴在概念上籠統的來說就是自己呼叫自己的方法,就像是查字典一樣,一層一層的查,直到找到你想要的那個資料,然後再逐一的返回 遞迴的抽象化理解 其實遞迴可以理解為出棧入棧的形式,他執行第一步遞迴,就將函式...

遞迴演算法理解

遞迴演算法看起來比較簡單,當總覺得沒能領會到它的精髓,平常也沒可以使用它。今天看到這篇文章,說的比較透徹 1,遞迴與迴圈之間的關係 看過這樣一道題,問,程式結構化設計的三種基礎結構,順序 選擇 迴圈是不是必須的?當然,你知道這樣乙個論斷,只要有這三種就足夠了 但是能不能更少呢?答案是 可以 原因就是...