算法之数列 Fibonacci
来源:互联网 发布:商通网络 编辑:程序博客网 时间:2024/05/22 00:57
Fibonacci
- 真言
- 真言
no games,no movies, but music.
- 引言
- 引言
no more words, just so these. I find a website from there.
- 介绍
- 介绍
Fibonacci was so wonderful, and made a great progress with development in algorithm.There are three ways to get Fibonacci number.first one// function Fibonacci recursionint Fibonacci_re(int n){if(n<0) return -1;else if(n==0) return 0;else if(n==1) return 1;return Fibonacci_re(n-1)+Fibonacci_re(n-2);}Running time is so bad. I have no words about it.Running space O(n),store function
second two// function Fibonacci arrayint Fibonacci_ar(int n){if( n<0 ) return -1;else if( n==0 ) return 0;else if( n==1 ) return 1;int * data = new int[n+1];data[0] = 0;data[1] = 1;for(int i = 2;i <= n;i++){data[i] = data[i-1]+data[i-2];}return data[n];}Running time is O(n).Running space O(n),store number
third three// function Fibonacci dpint Fibonacci_dp(int n){if( n<0 ) return -1;else if( n==0 ) return 0;else if( n==1 ) return 1;queue<int> * Q = new queue<int>;Q -> push(0);Q -> push(1);int head;for(int i=2;i <= n;i++){head=Q->front();Q->pop();Q->push(head+Q->front());}Q->pop();head = Q->front();delete Q;return head;}Running time is O(n).Running space O(2),store Fibonacci(n-1) and Fibonacci(n-2)
- 实验
- 实验
- 代码
- 代码
test.cpp#include <iostream>#include <queue>#include <Windows.h>#include <ctime>using namespace std ;// function Fibonacci recursionint Fibonacci_re(int n);// function Fibonacci dpint Fibonacci_dp(int n);// function Fibonacci arrayint Fibonacci_ar(int n);// function mainint main( ){DWORD s,e;int r=0;for(int i=0;i<40;i++){s = GetTickCount();r = Fibonacci_re(i);e = GetTickCount();cout<<"Fibonacci n="<<i<<endl;cout<<r<<" re "<<" ms "<<e-s<<endl;s = GetTickCount();r = Fibonacci_dp(i);e = GetTickCount();cout<<r<<" dp "<<" ms "<<e-s<<endl;s = GetTickCount();r = Fibonacci_ar(i);e = GetTickCount();cout<<r<<" ar "<<" ms "<<e-s<<endl;cout<<endl;}system("pause");return 0;}// function Fibonacci recursionint Fibonacci_re(int n){if(n<0) return -1;else if(n==0) return 0;else if(n==1) return 1;return Fibonacci_re(n-1)+Fibonacci_re(n-2);}// function Fibonacci dpint Fibonacci_dp(int n){if( n<0 ) return -1;else if( n==0 ) return 0;else if( n==1 ) return 1;queue<int> * Q = new queue<int>;Q -> push(0);Q -> push(1);int head;for(int i=2;i <= n;i++){head=Q->front();Q->pop();Q->push(head+Q->front());}Q->pop();head = Q->front();delete Q;return head;}// function Fibonacci arrayint Fibonacci_ar(int n){if( n<0 ) return -1;else if( n==0 ) return 0;else if( n==1 ) return 1;int * data = new int[n+1];data[0] = 0;data[1] = 1;for(int i = 2;i <= n;i++){data[i] = data[i-1]+data[i-2];}return data[n];}
0 0
- 算法之数列 Fibonacci
- 经典算法之Fibonacci数列
- Fibonacci数列问题算法
- Fibonacci数列 算法
- Fibonacci 数列算法
- Fibonacci数列-递归算法
- Fibonacci数列算法分析
- ACM之Fibonacci数列
- 算法基础篇之顺推法实例——fibonacci数列
- 程序算法艺术与实践:递归策略之Fibonacci数列
- fibonacci数列的矩阵算法
- 每日一算法:Fibonacci数列
- 算法基础:递归---Fibonacci数列
- 蓝桥杯算法 入门 Fibonacci数列
- Fibonacci数列算法Java版
- 网易算法题--Fibonacci数列
- C++练习之 Fibonacci 数列
- 【菜鸟之路】Fibonacci数列
- Linux下工作管理Job control小结
- git 取消修改,恢复版本 命令大全
- System.Threading.Timer使用心得
- jboss 目录详解及web部署
- Delphi内存专题
- 算法之数列 Fibonacci
- POJ 2942 Knights of the Round Table
- 肺结核染头发口头语连英8p
- 小白日记 (2)
- 私有API(转)
- 工厂模式
- ESFramework体系
- chromium for android render进程结构分析
- COM线程中模型