遞迴和分治思想1 資料結構和演算法31

2021-07-07 05:55:13 字數 653 閱讀 3968

讓程式設計改變世界

change the world by program

妹子,甲魚哥今天給你講乙個故事吧,從前我有個小弟,酷愛探險,有一次他進了乙個山洞,然後又出來,然後又進去,然後又出來,然後又進去,然後又出來。。。。。。後來他很開心~

艹,你說什麼呢?

妹子悟性真高^_^

事實上遞迴就跟雞生蛋蛋又生雞的道理一樣,只有等哪一天雞不想生蛋了,做了絕孕手術或者用上了杜蕾斯,這個遞迴就算結束了。

斐老跟小甲魚有個共同愛好,就是老愛拿交配說事兒,不同的是小甲魚注重過程和細節,斐老更關心結果,下邊就有他講的乙個故事:

如果說兔子在出生兩個月後,就有繁殖能力,一對兔子每個月能生出一對小兔子來。假設所有兔子都不會死去,能夠一直幹下去,那麼一年以後可以繁殖多少對兔子呢?

斐波那契數列

我們都知道兔子繁殖能力是驚人的,如下圖:

斐波那契數列

我們可以用數學函式來定義:

斐波那契數列

課間練習:假設我們需要列印出前40位斐波那契數列數,我們不妨一起考慮下用迭代如何實現?

遞迴事實上就是函式自己呼叫自己,我們先一起看下**的實現,然後再來分析:

int fib(int i)

斐波那契數列

**:

資料結構和演算法(遞迴和分治思想)

遞迴 乙個直接呼叫自己或通過一系列的呼叫語句間接地呼叫自己的函式,稱作遞迴函式 分治思想 將乙個問題分為幾個小的模組,逐一解決 輸入任意長度的字元,並反向輸出 遞迴 include void print if a int main void 斐波那契數列實現 迭代 遞迴 斐波拉契數列 include...

資料結構與演算法(3) 遞迴與分治思想

遞迴思想 遞迴就是有去 遞去 有回 歸來 有去 是指 遞迴問題必須可以分解為若干個規模較小,與原問題形式相同的子問題,這些子問題可以用相同的解題思路來解決,就像鑰匙可以開啟所有門上的鎖一樣 有回 是指 這些問題的演化過程是乙個從大到小,由近及遠的過程,並且會有乙個明確的終點 臨界點 一旦到達了這個臨...

資料結構演算法 遞迴 分治

該部落格結合leetcode原題介紹了可以使用 分治 思想解決的常見題目。leetcode 50 pow x,n 1 暴力解法 多少次冪,就乘上多少次x。但是提交的話會超時。時間複雜度 o n 空間複雜度 o 1 class solution object defmypow self,x,n typ...