如何解决斐波那契数列递归方法的性能问题
2017-08-07 18:47
330 查看
#
1.计算的步骤
1.先从cache数组中去取想要获取的数字
2.如果获取到了,就直接使用
3.如果没有获取到,就去计算,计算完之后,把计算结果存入cache,然后将结果返回
具体操作:
//创建一个闭包来封存这个函数
解决斐波那契数列的性能问题
//定义一个缓存数组,存储已经计算出来的斐波那契数1.计算的步骤
1.先从cache数组中去取想要获取的数字
2.如果获取到了,就直接使用
3.如果没有获取到,就去计算,计算完之后,把计算结果存入cache,然后将结果返回
具体操作:
var cache = []; function fib(n){ //1.从cache中获取数据 if(cache !== undefined){ //如果缓存中有,直接返回 return cache ; } //如果缓存中没有,那么就计算,并把计算结果存入数组 if(n <= 2){ cache = 1; return 1; } var temp = fib(n - 1) + fib(n - 2); cache = temp; return temp; }
//创建一个闭包来封存这个函数
var count =0 ; //设置count来计算运算次数 function createFib(){ var cache = []; function fib(n){ count ++; //1.从cache中获取数据 if(cache !== undefined){ //如果缓存中有 直接返回 return cache ; } //如果缓存中没有 就计算 if(n <= 2){ //把计算结果存入数组 cache = 1; return 1; } var temp = fib(n - 1) + fib(n - 2); //把计算结果存入数组 cache = temp; return temp; } return fib; } //测试性能: var fib = createFib(); fib(5); console.log(count); //7 count = 0; fib(6); console.log(count); //3 count = 0; fib(20); console.log(count); //29 count = 0; fib(21); console.log(count); //3 count = 0;
相关文章推荐
- 使用递归解决斐波那契数列的性能问题
- 如何尽可能高效地使用论坛+解决编程问题的一些方法
- [图灵beta]如何解决Oralce的性能问题?
- [图灵beta]如何解决Oralce的性能问题?
- SQL Server 2008 安装过程中遇到“性能计数器注册表配置单元一致性”检查失败 问题的解决方法
- SQL Server 2008 安装过程中遇到“性能计数器注册表配置单元一致性”检查失败 问题的解决方法
- 如何解决 SQL Server 应用程序的性能问题
- 正版加密光盘如何复制?我来教给你方法 加密光盘问题解决
- 在使用Hibernate时,因为一个查询需要更多的表连接而要使用SQL来解决性能问题。然而返回的结果集中包含了没有映射的Entity类中的表字段,在这个SQL中还有使用如何将层次关系的父子结点显示为横行
- 递归解决问题的方法
- SQL Server 2008 安装过程中遇到“性能计数器注册表配置单元一致性”检查失败 问题的解决方法
- 数组方法解决JS字符串连接性能问题有争议
- [ChneChen的随笔][管理之道]什么才是我们需要的解决问题的方法(从如何限制公司电脑使用U盘解决之道谈起)
- 在vc中如何用双缓冲的方法解决重绘闪屏的问题
- SQL Server 2008 安装过程中遇到“性能计数器注册表配置单元一致性”检查失败 问题的解决方法
- 磁盘性能计数器的问题的解决方法
- (转)如何解决性能问题
- 如何正确使用事件探察器解决性能问题(http://www.cnblogs.com/tom-fu/archive/2008/06/25/1146934.html#1235440)
- C#与.NET程序员面试宝典 3.1.3 面试题22:如何解决装箱和拆箱引发的性能问题
- [原创]SQL Server 2008 安装过程中遇到“性能计数器注册表配置单元一致性”检查失败 问题的解决方法