设为首页 加入收藏

TOP

斐波那契数列(Fibonacci)递归与非递归的性能对比
2015-08-31 21:24:43 来源: 作者: 【 】 浏览:33
Tags:那契 数列 Fibonacci 性能 对比

费波那契数列由0和1开始,之后的数就由之前的两数相加 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584,……….


用递归算法来求值,非常好理解.伪代码:


实现:


功能实现了,但是代码比较冗长,函数是要对前两项做特殊判断.现在优化一下,如何才能更通用,即使是第0个和第1个也能运用到for循环呢?假设在 0, 1, 1, 2, 3, 5, 8, 13... 之前还有两项, 是-1和1, 即: -1, 1, 0, 1, 1, 2, 3, 5, 8, 13, 21, 34,这样就通用了:


现在评估一下他们的性能: 写一个性能装饰器.


他不能用在递归方法中. 所以最终还是写了这么个方法:


看出性能对比了吧:


所以用递归弊端还是不少


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Django Signals 从实践到源码分析 下一篇Python多线程编程

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: