- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
离散数课件-第2章-7
*;递 归;递归定义;*;*;递归定义图片;递归定义;*;〖Example 1〗假定f是用
f(0)=3
f(n+1)=2f(n)+3
来递归地定义的。求出f(1),f(2),f(3)和f(4)
解:从这个递归定义得出
f(1)=2f(0)+3=2*3+3=9
f(2)=2f(1)+3=2*9+3=21
f(3)=2f(2)+3=2*21+3=45
f(4)=2f(3)+3=2*45+3=93
;〖Example 2〗:给出阶乘函数F(n)=n!的归纳定义
解:可以通过规定阶乘函数的初值,即F(0)=1,并且给出F(n)求出F(n+1)的规则,来定义这个函数。要得出这个结果,注意通过乘以n+1就从n!计算出(n+1)。因此,所需要的规则是F(n+1)=(n+1)F(n)。
为了从例2里求出的递归定义来确定阶乘函数的一个值,比如F(5)=5!,有必要多次使用说明如何F(n)表示F(n+1)的规则:F(5)=5F(4)=5*4F(3)=5*4*3F(2)=5*4*3*2F(1)=5*4*3*2*1*F(0)=5*4*3*2*1*1=120;〖Example 3〗给出an的递归定义,其中a是非负零实数而且是非负整数。
解:这个递归定义包括两个部分。首先规定a0,即a0=1.然后给出从an求出an+1的规则,即对n=0,1,2,3,……来说an+1 =a* an 。这两个等式对所有非负整数唯一地定义了an
;*;*;〖Example 5〗
斐波那契数f0,f1,f2,…是用等式f0=0,f1=1,以及n=2,3,4,…来说fn=fn-1+fn-2来定义的。斐波那契数f2, f3,f4 ,f5 ,f6 是什么?
解:因为这个定义的第一部分说f0=0和f1=1 ,所以从这个定义的第二部分得出
f2 = f1 + f0 =1+0=1
f3 = f2 + f1 =1+1=2
f4 = f3 + f2 =2+1=3
f5 = f4 + f3 =3+2=5
f6 = f5 + f4 =5+3=8
;*;*;*;*;*;递归定义;*;*;*;*;〖Example 8〗 证明l(xy) = l(x) + l(y) ,其中x, y ? ?* ;〖定义 3〗 递归定义根树的集合,其中根树是由一个顶点集合和连接这些顶点的边组成的,顶点集合包含的一个特殊顶点称为树根:;建立根树;〖定义 4〗 递归定义扩展二叉树的集合:;建立扩展二叉树;〖定义 5〗 递归定义满树的集合:;建立满树;递归算法;*;*;*;*;递归算法;递归与迭代;procedure iterative factorial (n: 正整数)
x:=1
For i:= 1 to n
x:= I × x
{x是n!};procedure iterative fibonacci (n: 非负整数)
If n=0 then y:=0
Else
Begin
x:=0
y:=1
for i:= 1 to n-1
Begin
z := x + y
x := y
y := z
end
End
{y是第n个斐波那契数};递归算法;基本思想
将两个或两个以上的有序子序列“归并”为一个有序序列。基本原理为将一个具有n个待排序记录的序列看成是n个长度为1的有序列,然后进行两两归并,得到「n/2 个长度为2的有序序列,再进行两两归并,得到「n/4 个长度为4的有序序列,如此重复,直至得到一个长度为n的有序序列为止。
在内部排序中,通常采用的是2-路归并排序。即:将两个位置相邻的有序子序列归并为一个有序序列。;原理
假设初始序列含有n个记录,则可看成n个有序的子序列,每个子序列长度为1。然后两两归并,得到?n/2?个长度为2或1的有序子序列;再两两归并,……如此重复,直至得到一个长度为n的有序序列为止。;初始关键字: [49] [38] [65] [97] [76] [13] [27];如何进行两路归并?
将两个有序表的元素进行比较,小者复制到目标表中。;5; 归并排序方法可以用递归的形式描述,即首先将待排序的记录序列分为左右两个部分,并分别将这两个部分用归并方法进行排序,然后调用2-路归并算法,再将这两个有序段合并成一个含有全部记录的有序段。;归并排序的递归算法;归并排序的例子;〖Example 10〗对8,2,
文档评论(0)