每日一演算法 Fibonacci數列

2021-06-19 02:32:10 字數 624 閱讀 3978

fibonacci為2023年代的歐洲數學家,在他的著作中曾經提到:「若有乙隻免子每個月生乙隻小免子,乙個月後小免子也開始生產。起初只有乙隻免子,乙個月後就有兩隻免子,二個月後有三隻免子,三個月後有五隻免子(小免子投入生產)......。

如果不太理解這個例子的話,舉個圖就知道了,注意新生的小免子需乙個月成長期才會投入生產,類似的道理也可以用於植物的生長,這就是fibonacci數列,一般習慣稱之為費氏數列,例如以下:1、1 、2、3、5、8、13、21、34、55、89......

/*遞迴演算法一*/

#include int fibonacci(int n)

else }

int main()

/*遞迴演算法二*/

#include #define n 40

int main()

; int i;

fib[0] = fib[1] = 1;

for (i=2; i

/*迭代演算法*/

#include int main()

printf("%d\n",fib);

return 0;

}

每日一演算法

leetcode 75 號題 給定乙個包含紅色 白色和藍色,一共 n 個元素的陣列,原地對它們進行排序,使得相同顏色的元素相鄰,並按照紅色 白色 藍色順序排列。此題中,我們使用整數 0 1 和 2 分別表示紅色 白色和藍色。注意 不能使用 庫中的排序函式來解決這道題。示例 輸入 2,0,2,1,1,...

每日一演算法

答主大二,這學期剛開了資料結構與演算法的課程,但課堂上只提及基礎的增刪改查,遠遠不能滿足對資料結構相對熟悉的需求,因而答主便有了 每日演算法 專題練習的想法,有需要的可以共同練習,與君共勉 適用人群 資料結構與演算法初學者 題型大多來自leetcode 請判斷乙個鍊錶是否為回文鍊錶。示例 1 輸入 ...

每日一演算法1

插入排序 首先來解釋一下插入排序法的原理 它的原理是每插入乙個數都要將它和之前的已經完成排序的序列進行重新排序,也就是要找到新插入的數對應原序列中的位置。那麼也就是說,每次插入乙個數都要對原來排序好的那部分序列進行重新的排序,時間複雜度同樣為o n 這種演算法是穩定的排序方法。下面我用乙個圖來解釋一...