摘要: 递归算法的时间复杂度除非只有前两项,否则都不是线性的,并且相当耗费内存。我们用最常见的的fibonacci数列来说明:function fibonacci(n){ if( n === 0 || n === 1){ return n; } else { return fibonacci(n - 1) + fibonacci(n - 2); }} 这是一种最常见的写法,这种写法极其耗费内存,当参数n大于30时,就会明显感觉到花的时间比较长,如果n等于100,浏览器极有可能会崩溃掉。 我们来分析一下耗费内存和时间原因:先将要计算的变量值存到堆栈中... 阅读全文
posted @ 2012-09-05 08:41 草根程序猿 阅读(6927) 评论(10) 推荐(0) 编辑