利用缓存计算来提高Fibonacci函数计算速度

window.onload = function(){
        var fibonacci = function(){
            var memo = [0,1];
            var fib = function(n){
                var result = memo[n];
                if(typeof result != "number"){
                    result = fib(n-1) + fib(n-2);
                    memo[n] = result;
                }
                return result;
            }
            return fib;
        }();

        console.time('memo');
        console.log(fibonacci(10));
        console.timeEnd('memo');
    }

通过添加额外参数memo[n] = result来记录中间值,计算时首先通过if(typeof result != "number")检测memo[n]是否存在。这样就提高了计算的效率,同时也要消耗一定了缓存。

posted @ 2013-05-06 15:07  CodingMonkey  阅读(217)  评论(0编辑  收藏  举报