2007年1月28日、递推关系

    今天将离散数学第五章看完了,以前编程只考虑调用书上给的算法,如冒泡排序,插入排序等等,但是没有了解原理是什么。今天看了递推关系之后,感触很多....

    首先递推关系与递归算法有很大的关系,虽然它们有不同之处,但是由递推关系可以直接得出数列的递归算法,也就是说,当解决一个问题的时候,可以通过已知的条件利用递推关系可以推导出an,an-1.....a0的等式关系,而且a0等是已知的值,这样就构成了递归算法的前提,这样就可以通过递归算法去解决实际的问题 。下来就出现一个问题:怎么去求解递推关系呢?一般解决方法是两种:代入法和专门求解定常数先性齐次递推关系的特殊方法。
1,代入法:根据递推关系写出an用an-1,......a0表示形式。然后不断的利用递推关系替代式中的an-1最后得到一个与n有关而与an-1,......等无关的通项公式。
2,特殊的递推关系,这里采用齐线性方程来解决这个问题,形如:an=c1an-1+c2an-2+,,,,,+ck an-k   ck!=0的递推关系称为定常系数线性齐次递推关系。

    再次递推关系在算法分析方面有很重要的作用,其思想就是用an表示输入量为n的递归算法的运行时间(可以最好情况下的时间,也可以是一般情况下的时间,也可以是最坏情况下的时间),确定数列a0,a1......的递推关系和初始条件,通过求解递推关系,确定算法所需的时间。象以前做的排序算法,仅仅知道如何实现,不用了解计算查找时间是如何推导出来的,现在使用递推算法就可以推导出来。并比较不同算法之间的查找时间。还有一种归并排序的方法以前没有用过,大致是这样的,将一个有序的序列分成两个等长的部分,将两个序列合并到一起就叫做归并,在两个有序的序列中,如果把它们合并并排序,那么就会产生归并排序算法。这个算法中需要对两个序列都做一个下标,分别从两个序列的第一个元素开始,对比他们大小并排序。这种算法原理已经清楚了。但是还没有实际编写运行。不过将在c++复习之后会实践实践。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值