呈现递归算法思想举例说明_第1页
呈现递归算法思想举例说明_第2页
呈现递归算法思想举例说明_第3页
呈现递归算法思想举例说明_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、怎样表现递归算法的思想及举例说明高密市康成中学陈飞鹏2009年7月22日23:09阅读:239专家阅读:0|讨论:7专家讨论:0孟凡桥于09-7-2321:49介绍总结了递归算法的特色、定义等,例子列举的简短,适合,值得学习。一、递归算法的定义递归算法是一种直接或许间接地调用自己的算法。在计算机编写程序中,递归算法对解决一大类问题是十分有效的,它常常使算法的描绘简短并且易于理解。二、递归算法的特色递归过程一般经过函数或子过程来实现。递归算法在函数或子过程的内部,直接或许间接地调用自己的算法。递归算法的实质:是把问题转变为规模减小了的同类问题的子问题。此后递归调用函数(或过程)来表示问题的解。三

2、、递归算法解决问题的特色:(1)递归就是在过程或函数里调用自己。(2)在使用递加归策略时,必然有一个明确的递归纳束条件,称为递归出口。(3)递归算法解题平常显得很简短,但递归算法解题的运转效率较低。因此一般不提议用递归算法设计程序。(4)在递归调用的过程中间系统为每一层的返回点、局部量等开拓了栈来储蓄。递归次数过多简单造成栈溢出等,因此一般不提议用递归算法设计程序。1/4递归算法所表现的“重复”一般有三个要求:一是每次调用在规模上都有所减小(平常是减半);二是相邻两次重复之间有亲近的联系,前一次要为后一次做准备(平常前一次的输出就作为后一次的输入);三是在问题的规模极小时必然用直接给出解答而不

3、再进行递归调用,因此每次递归调用都是有条件的(以规模未达到直接解答的大小为条件),无条件递归调用将会成为死循环而不可以正常结束四、下边我们用c语言举俩个例子来对递归算法进行一下演绎:1、有一个农场在第一年的时候买了一头刚出生牛,这头牛在第四年的时候就能生一头小牛,此后每年这头牛就会生一头小牛。这些小牛成长到第四牛又会生小牛,此后每年相同会生一头牛,假定牛不死,这样频频。请问50年后,这个农场会有多少头牛?第必然义最后停止条件f(4)=1;此后定义递归公式中f(n)=f(n-1)+f(n-3)。#includeintfn(inta);voidmain()inti;i=fn(20);printf(%dn,i);2/4intfn(inta)if(a0)return1;elseif(a=4)a=fn(a-1)+fn(a-3);returna;2、有个莲花池里开初有一只莲花,每过一天莲花的数目就会翻一倍。假定莲花永久不凋谢,30天的时候莲花池所有长满了莲花,请问第23天的莲花占莲花池的几分之几?第必然义最后停止条件f(1)=1;此后定义递归公式中f(n)=f(n-1)*2。#includeintfn(inta);voidmain()inta;3/4intb;doublec;a=fn(30);b=fn(23);c=(double)b/a;printf(%.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论