递归算法改进---fibonaci 函数

来源:互联网 发布:网上比价软件下载 编辑:程序博客网 时间:2024/05/22 10:39

采用一个表代替递归

/** *Compute Fibonaci numbers * f(0)=1, f(1)=1 * f(n)= f(n-1)+ f(n-2); *程序效率低下,运行时间也是T(N) 成指数级增长 */public static int fib( int  n){   if(n<= 1)      return 1;   else      return fib(n-1)+ fib(n-2);}/* *用一个表代替递归 *O(N)算法 */public static int fibonaci(int n){   if(n<= 1)      return 1;   int last= 1;   int nextToLast= 1;   int answer= 1;   for(int i=2; i<= n; i++)   {      //f(n)= f(n-1)+ f(n-2)      answer= last+ nextToLast;      nextToLast= last;      last= answer;   }   return answer;}
0 0