下载此文档

2021年递归与回溯算法.ppt


文档分类:IT计算机 | 页数:约69页 举报非法文档有奖
1/69
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/69 下载此文档
文档列表 文档介绍
递归的定义:
在定义一个过程或函数时出现调用本过程或本函数的成分,称为递归。若调用自身,称为直接递归。若过程或函数p调用过程或函数q,而q又调用p,则称为间接递归。
在程序设计中,使用递归技术往往使函数的定义和算法的描述简洁且易于理解。
递归的使用:

Function jiech(n:integer):longint;
Begin
if n=0 then jiech:=1
else jiech:=n*jiech(n-1);
End;
1
递归与回溯算法
2021/1/15
Function fib(n:integer):longint;
Begin
if(n=0)or(n=1)then fib:=1
else fib:=fib(n-1)+fib(n-2);
End;
爬楼梯时可以1次走1个台阶,也可以1次走2个台阶。对于由n个台阶组成的楼梯,共有多少种不同的走法?
1个台阶:只有1种走法;
2个台阶:有两种走法;(1+1;2)
N个台阶(n>2),记走法为f(n):
第1次走1个台阶,还剩(n-1)个台阶,走法为f(n-1);
第1次走2个台阶,还剩(n-2)个台阶,走法为f(n-2)。
所以,f(n)=f(n-1)+f(n-2)。
定义f(0)=1,则有:
2
递归与回溯算法
2021/1/15
,采用递归的方法编写算法既方便又有效。如单链表:
Type
node=^lnode
lnode=record
data:integer;
next:node;
end;
求一个不带头结点的单链表head的所有data域之和的递归算法如下:
Function sum(head:node):integer;
Begin
if head=nil then sum:=0
else sum:=head^.data+sum();
End;
3
递归与回溯算法
2021/1/15

例:整数划分问题(版本1)
为避免重复,记
设f(n,k)为把正整数n分成k份的分法,那么:
先考虑特殊情况:
f(n,1)=1 (n=n)
f(n,n)=1 (n=1+1+……+1)
当k>n时, f(n,k)=0
(4)若n1=1,则:
 其分法为f(n-1,k-1);
4
递归与回溯算法
2021/1/15
(5)若n1>1,则
其分法为f(n-k,k)。
5
递归与回溯算法
2021/1/15
整数划分问题(版本2)
在正整数n的所有不同的划分中,将最大加数n1不大于m的划分个数记作q(n,m)。我们可以建立如下的递归关系。
(1) q(n,1)=1, n>=1;
当最大加数n1不大于1时,任何正整数n只有一种划分形式,即:
  n=1+1+……+1。
(2) q(n,m)=q(n,n),m>=n;
最大加数n1实际上不能大于n。因此,q(1,m)=1。
(3) q(n,n)=1+q(n,n-1);
正整数n的划分有n1=n的划分和n1<=n-1的划分组成。
(4) q(n,m)=q(n,m-1)+q(n-m,m),n>m>1;
n的最大加数n1不大于m的划分由n1=m的划分和n1<=m-1的划分组成。
6
递归与回溯算法
2021/1/15
Function q(n,m:integer):integer;
Begin
if(n<1)or(m<1) then exit(0);
if(n=1)or(m=1) then exit(1);
if n<m then exit(q(n,n));
if n=m then exit(q(n,m-1)+1);
exit(q(n,m-1)+q(n-m,m));
End;{正整数n的划分数p(n)=q(n,n)。}
7
递归与回溯算法
2021/1/15
递归过程或函数直接(或间接)调用自身,但如果仅有这些操作,那么将会由于无休止地调用而引起死循环。因此一个正确的递归程序虽然每次调用的是相同的子程序,但它的参数、输入数据等均有所变化,并且在正常的情况下,随着调用的深入,必定会出现调用到某一层时,不再执行调用而是终止函数的执行。
递归思路是把一个不能或不好直接求解的“大问题”转化成一个或几个“小问题”来解决,再把这些“小问题”进一步分解成更小的“小问题”来解决,如此分解,直至每个“小问题”都可以直接解决。

2021年递归与回溯算法 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数69
  • 收藏数0 收藏
  • 顶次数0
  • 上传人书犹药也
  • 文件大小412 KB
  • 时间2021-01-15