利用缓存计算来提高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]是否存在。这样就提高了计算的效率,同时也要消耗一定了缓存。

你可能感兴趣的:(fibonacci)