用斐波那契数列感受算法的神奇(21亿耗时0.02毫秒)

目录

一、回顾斐波那契数列

二、简单递归方法

(一)解决思路

(二)代码展示

(三)性能分析

三、采用递归+HashMap缓存

(一)解决思路

(二)代码展示

(三)性能分析

四、采用递归+数组缓存(记忆化搜索)

(一)解法思路

(二)代码展示

(三)性能分析

五、数组缓存+顺序迭代

(一)解法思路

(二)代码展示

(三)性能分析

六、取消缓存直接采用迭代优化

(一)解法思路

(二)代码展示

(三)性能分析

七、用初等代数推导公式解法

(一)解法分析

(二)代码展示

(三)性能分析

八、矩阵解法

(一)解法分析

(二)代码展示

(三)性能分析

九、矩阵解法+快速幂

(一)解法分析

(二)代码展示

(三)性能分析

十、最优解分析


干货分享,感谢您的阅读!

针对斐波那契数列算法进行详细介绍和优化,从最简单的递归方法到更高效的迭代、缓存、动态规划、公式推导和矩阵解法,最终达到了时间复杂度为O(logn)的快速幂矩阵解法来感受算法的神奇之处,最后可以看到如何实现在输入n=2100000000(21亿)时仅耗时0.02毫秒的最佳效果。

一、回顾斐波那契数列

斐波那契数列(Fibonacci sequence)是一种非常经典的数学序列,其特点是每个数字是前两个数字之和,起始于0和1。也就是说,数列的第三个数是前两个数的和,第四个数是第二个数和第三个数的和,以此类推。斐波那契数列的前几项是:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...

评论 1087
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张彦峰ZYF

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值