斐波那契数列递归实现和优化
2016-08-16 00:00
190 查看
递归的求解过程存在严重的效率问题,如果想得到f(10),需要先求解f(8)和f(9)。而求解f(9)又要先求解f(8)和f(7),如书中的树形结构:
树中有很多重复节点,重复节点会随着n的增大而急剧增加,计算量也会随着n增大而急剧增大。
优化:从上往下计算,首先根据f(0)和f(1)算出f(2),再关键f(1)和f(2)算出f(3).....依次算法第n项。这种思路的时间复杂度是O(n)。
递归和优化的代码实现如下:http://www.oschina.net/code/snippet_1051716_58660
树中有很多重复节点,重复节点会随着n的增大而急剧增加,计算量也会随着n增大而急剧增大。
优化:从上往下计算,首先根据f(0)和f(1)算出f(2),再关键f(1)和f(2)算出f(3).....依次算法第n项。这种思路的时间复杂度是O(n)。
递归和优化的代码实现如下:http://www.oschina.net/code/snippet_1051716_58660
相关文章推荐
- 斐波那契数列(c++数组实现,递归实现与优化)
- 斐波那契数列的递归优化实现
- 斐波那契数列 递归和非递归 双重实现
- 用递归实现斐波那契数列(Fibonacci Sequence )的函数
- 递归和循环方式实现斐波那契数列
- 斐波那契数列的两种实现方式(递归(大于O(n方))和迭代(O(n))----网易笔试2013录
- 斐波那契数列的非递归实现
- 斐波那契数列的递归和迭代实现之差异
- 斐波那契数列的递归和非递归实现
- 斐波那契数列的递归、迭代(循环)、通项公式三种实现
- 数据结构(C#)--递归和动态规划法实现斐波那契数列的方法
- 斐波那契数列的递归,迭代(循环),通项公式三种实现
- 斐波那契数列的递归,迭代(循环),通项公式三种实现
- 斐波那契数列的递归,迭代(循环),通项公式三种实现
- 递归+优化 一维数组实现矩阵乘法
- C语言不用递归(使用栈)实现斐波那契数列练习
- 斐波那契数列 递归与非递归实现
- 使用递归实现斐波那契数列
- 斐波那契数列的两种实现方式(递归(大于O(n方))和迭代(O(n))----网易笔试2013录
- 常用排序算法完全版 快排优化 归并排序的非递归实现