首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 其他相关 >

斐波那契据数算法优化

2013-03-01 
斐波那契数算法优化在很多算法都用到了递归算法,谈到递归就难免要提到斐波那契数的算法。最一般的算法如下(

斐波那契数算法优化

      在很多算法都用到了递归算法,谈到递归就难免要提到斐波那契数的算法。

     最一般的算法如下(C#语法):        

private long Fibonacci(int n,out long m)        {            long t, r;            if (n == 1)            {                m=0;                return 1;            }            else if (n == 2)            {                m = 1;                return 1;            }            else if (n > 2)            {                t = Fibonacci(n - 1, out m);                r = t + m;                m = t;                return r;            }            else            {                m = 0;                return 0;            }        }

此处的最大优化在于保存计算项之前的每一项的值,每一项的计算只调用Fibonacci方法一次,实际调用Fibonacci方法的次数只有n-1次,如果n=33,那么调用Fibonacci方法只有32次。

    看看方法的调用次数就可知算法的效率了。


1楼sueking1分钟前
an=1/√[(1+√5/2) n-(1-√5/2) n](n=1,2,3.....)(√5表示根号5)

热点排行