斐波那契數(shù)列算法(分類:)斐波那契數(shù)列算法斐波那契數(shù)列問題是算法學(xué)習(xí)者必然接觸到的問題,作為經(jīng)典問題,斐波那契數(shù)列算法首次接觸時一般是作為遞歸算法的案例教程。然而遞歸解決斐波那契,其效率低的令人發(fā)指,有人算出其時間復(fù)雜度為O(2^n)。指數(shù)級時間復(fù)雜度。如果面試的時候面試官問你斐波那契的求解方法,你來一個遞歸求解,基本上可以說,你已經(jīng)game over了。下面是斐波那契的4種算法:
斐波那契數(shù)列算法
斐波那契數(shù)列算法
1.遞歸 時間復(fù)雜度O(2^n)
[java] view plain copy
int f(int n){
if(n == 1 || n == 2){
return 1;
return f(n-1) + f(n-2);
2.循環(huán) 時間復(fù)雜度O(n)
[java] view plain copy
public int f(int n) // write code here
int f0 = 1;
int f1 = 1;
int f2 = 0;
for(int i = 2; i < n; i++){
f2 = f0 + f1;
f0 = f1;
f1 = f2;
return f2;
3.矩陣求解 時間復(fù)雜度O(logn)斐波那契數(shù)列算法
斐波那契的遞推公式可以表示成如下矩陣形式,所以其所以根據(jù)矩陣的分治算法,可以在O(logn)時間內(nèi)算出結(jié)果。筆試問題:對于斐波拉契經(jīng)典問題,我們都非常熟悉,通過遞推公式F(n) = F(n - 1) + F(n - 2),我們可以在線性時間內(nèi)求出第n項F(n),現(xiàn)在考慮斐波拉契的加強版,我們要求的項數(shù)n的范圍為int范圍內(nèi)的非負(fù)整數(shù),請設(shè)計一個高效算法,計算第n項F(n)。第一個斐波拉契數(shù)為F(0) = 1。
4.公式求解 時間復(fù)雜度O(1);歡迎觀看斐波那契數(shù)列算法的。(更新時間:2017.3.27 15:41)
- 斐波那契數(shù)列與股市
- 斐波那契數(shù)列與股市(分類:)斐波那契數(shù)列與股市時間周期理論是股價漲跌的根本原因之一,斐波那契數(shù)列與股市它能夠解釋大多數(shù)市場漲跌的奧秘。......
- 斐波那契數(shù)列算法
- 斐波那契數(shù)列算法(分類:)斐波那契數(shù)列算法斐波那契數(shù)列問題是算法學(xué)習(xí)者必然接觸到的問題,作為經(jīng)典問題,斐波那契數(shù)列算法首次接觸時一般是......
- 斐波那契數(shù)列的故事
- 斐波那契數(shù)列的故事(分類:)斐波那契數(shù)列的故事斐波那契數(shù)列(Fibonacci sequence),斐波那契數(shù)列的故事又稱黃金分割數(shù)列......
- 斐波那契數(shù)列的證明
- 斐波那契數(shù)列的證明(分類:)斐波那契數(shù)列的證明斐波那契數(shù)列,“斐波那契數(shù)列”的發(fā)明者,斐波那契數(shù)列的證明是意大......
- 斐波那契數(shù)列的意義
- 斐波那契數(shù)列的意義(分類:教學(xué)視頻) 斐波那契數(shù)列的意義“斐波那契數(shù)列”的發(fā)明者,是意大......