斐波那契数列迭代和递归对比
2013-01-11 15:22
423 查看
斐波那契数列迭代方法和递归算法对比
1.递归算法
2.递归算法(静态方法)
3.迭代算法
4.调用
5.结果
102334155迭代時間:00:00:00.0001703
102334155遞歸時間:00:00:06.5017408
102334155遞歸時間(靜態):00:00:06.2556308
1.递归算法
int recursion(int n) { if (n < 2) return n; else { return recursion(n - 1) + recursion(n - 2); } }
2.递归算法(静态方法)
static int recursionS(int n) { if (n < 2) return n; else { return recursionS(n - 1) + recursionS(n - 2); } }
3.迭代算法
int Iteration(int n) { int a1, a2, a3; if (n < 2) return n; a1 = a2 = a3 = 1; while (n > 2) { n--; a3 = a1 + a2; a1 = a2; a2 = a3; } return a3; }
4.调用
Stopwatch sw1 = new Stopwatch(); sw1.Start(); int i = Iteration(40); sw1.Stop(); Response.Write(string.Format("{1}迭代時間:{0}<br/>", sw1.Elapsed, i)); Stopwatch sw = new Stopwatch(); sw.Start(); int r= recursion(40); sw.Stop(); Response.Write(string.Format("{1}遞歸時間:{0}", sw.Elapsed, r)); Response.Write("<br/>"); Stopwatch sw2 = new Stopwatch(); sw2.Start(); int r1 = recursionS(40); sw2.Stop(); Response.Write(string.Format("{1}遞歸時間(靜態):{0}", sw2.Elapsed, r1)); Response.Write("<br/>");
5.结果
102334155迭代時間:00:00:00.0001703
102334155遞歸時間:00:00:06.5017408
102334155遞歸時間(靜態):00:00:06.2556308
相关文章推荐
- 斐波那契数列实现--递归,迭代,数组,队列
- php递归和迭代实现斐波那契数列
- 斐波那契数列的递归,迭代(循环),通项公式三种实现
- 斐波那契数列的递归,迭代(循环),通项公式三种实现
- 斐波那契数列实现--递归,迭代,数组,队列
- 递归方式、迭代方式实现的斐波那契数列。
- C语言斐波那契数列的四种实现方式—递归,迭代,数组,队列
- 斐波那契数列的递归和非递归实现
- 深究递归和迭代的区别、联系、优缺点及实例对比
- 深究递归和迭代的区别、联系、优缺点及实例对比
- java递归实现斐波那契数列
- 迭代和递归(Python)--乘方、最大公约数、汉诺塔、斐波那契、回文字符串
- 深究递归和迭代的区别、联系、优缺点及实例对比
- Fibonacci(斐波那契)数列的递归与非递归实现 python
- 斐波那契数列递归与非递归实现(JAVA语言描述)
- 斐波那契数列的递归和非递归解法
- 斐波那契数列-递归
- 深究递归和迭代的区别、联系、优缺点及实例对比
- 递归思想斐波那契数列变形
- 斐波那契数列数组递推,普通递归,记忆化搜索,矩阵快速幂,和公式法