递推复习

首先让我们来复习递推。

这是讲完语法和几种排序就开始学习的算法,总体上来说十分基础,并与之后的算法有着密切的联系。

算法分析:

递推,就是一个不断由已知的信息推出未知的信息直到推出我们所需的结果的一个过程。

这么说太抽象,直接上例子:

输出斐波那契数列的第N项。

我们知道,斐波那契数列是这样的一个数列:1,1,2,3,5,8,13,21。。。。。。

就是每一项等于它的前两项之和。递推公式An=An-1+An-2 (n>=2)

这个东西要怎么实现呢?我们想到了伟大的循环。

我们可以开一个数组,F[N]表示斐波那契数列的第N个数是多少。则F[i]=F[i-1]+F[i-2],然后通过循环来求出第N项。

因为调用时用到了第i-1和第i-2项,所以我们要i=3开始循环循环到N,并把F[1]F[2]都初始为1(因为斐波那契数列的前两项都是1),每次让F[i]=F[i-1]+F[i-2],这样就完成了。

总结一下,递推有以下几点十分关键:

(1)初始值:根据你的转移方程,需要考虑要哪些状态附上初始值。

(2)转移方程:这个的重要性就不说了,没有它你这么写啊。。。

(3)枚举顺序和边界:要注意哪些是已知的,哪些是未知的,要保证推出的信息都是从已知推出的。

(4)时间复杂度:一般都是状态数*处理每个状态所用时间,不排除个例。

简单的递推大概就是这样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值