斐波那契数列算法(分类:)斐波那契数列算法斐波那契数列问题是算法学习者必然接触到的问题,作为经典问题,斐波那契数列算法首次接触时一般是作为递归算法的案例教程。然而递归解决斐波那契,其效率低的令人发指,有人算出其时间复杂度为O(2^n)。指数级时间复杂度。如果面试的时候面试官问你斐波那契的求解方法,你来一个递归求解,基本上可以说,你已经game over了。下面是斐波那契的4种算法:
斐波那契数列算法
斐波那契数列算法
1.递归 时间复杂度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.循环 时间复杂度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.矩阵求解 时间复杂度O(logn)斐波那契数列算法
斐波那契的递推公式可以表示成如下矩阵形式,所以其所以根据矩阵的分治算法,可以在O(logn)时间内算出结果。笔试问题:对于斐波拉契经典问题,我们都非常熟悉,通过递推公式F(n) = F(n - 1) + F(n - 2),我们可以在线性时间内求出第n项F(n),现在考虑斐波拉契的加强版,我们要求的项数n的范围为int范围内的非负整数,请设计一个高效算法,计算第n项F(n)。第一个斐波拉契数为F(0) = 1。
4.公式求解 时间复杂度O(1);欢迎观看斐波那契数列算法的。(更新时间:2017.3.27 15:41)
- 斐波那契数列与股市
- 斐波那契数列与股市(分类:)斐波那契数列与股市时间周期理论是股价涨跌的根本原因之一,斐波那契数列与股市它能够解释大多数市场涨跌的奥秘。......
- 斐波那契数列算法
- 斐波那契数列算法(分类:)斐波那契数列算法斐波那契数列问题是算法学习者必然接触到的问题,作为经典问题,斐波那契数列算法首次接触时一般是......
- 斐波那契数列的故事
- 斐波那契数列的故事(分类:)斐波那契数列的故事斐波那契数列(Fibonacci sequence),斐波那契数列的故事又称黄金分割数列......
- 斐波那契数列的证明
- 斐波那契数列的证明(分类:)斐波那契数列的证明斐波那契数列,“斐波那契数列”的发明者,斐波那契数列的证明是意大......
- 斐波那契数列的意义
- 斐波那契数列的意义(分类:教学视频) 斐波那契数列的意义“斐波那契数列”的发明者,是意大......