呈现递归算法的思想及举例说明计算机数据结构与算法_计算机-数据结构与算法.pdf
-
资源ID:95490237
资源大小:115.11KB
全文页数:3页
- 资源格式: PDF
下载积分:5.3金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
呈现递归算法的思想及举例说明计算机数据结构与算法_计算机-数据结构与算法.pdf
如何呈现递归算法的思想及举例说明 高密市康成中学陈飞鹏2009年7月22日23:09 浏览:239专家浏览:0|评论:7专家评论:0 孟凡桥于09-7-2321:49推荐总结了递归算法的特点、定义等,例子列举的 简洁,适当,值得学习。一、递归算法的定义 递归算法是一种直接或者间接地调用自身的算法。在计算机编写程序中,递归算法对解决一大类问题是十分有效的,它往往使算法的描述简洁而且易于理解。二、递归算法的特点 递归过程一般通过函数或子过程来实现。递归算法在函数或子过程的内部,直接或者间接地调用自己的算法。递归算法的实质:是把问题转化为规模缩小了的同类问题的子问题。然后 递归调用函数(或过程)来表示问题的解。三、递归算法解决问题的特点:(1)递归就是在过程或函数里调用自身。(2)在使用递增归策略时,必须有一个明确的递归结束条件,称为递归出 口。(3)递归算法解题通常显得很简洁,但递归算法解题的运行效率较低。所以 一般不提倡用递归算法设计程序。(4)在递归调用的过程当中系统为每一层的返回点、局部量等开辟了栈来存 储。递归次数过多容易造成栈溢出等,所以一般不提倡用递归算法设计程序。int fn(int a)if(a0)return 1;else if(a=4)a=fn(a-l)+fn(a-3);return a;2、有个莲花池里起初有一只莲花,每过一天莲花的数量就会翻一倍。假设 莲花永远不凋谢,30天的时候莲花池全部长满了莲花,请问第23天的莲花占莲花池的几分之几?首先定义最终终止条件f(l)=l;然后定义递归公式中f(n)=f(n-l)*2o#include int fn(int a);void main()int a;了递归算法的特点定义等例子列举的简洁适当值得学习一递归算法的定义递归算法是一种直接或者间接地调用自身的算法在计算机编写程序中递归算法对解决一大类问题是十分有效的它往往使算法的描述简洁而且易于理解二递归算递归算法的实质是把问题转化为规模缩小了的同类问题的子问题然后递归调用函数或过程来表示问题的解递归算法解决问题的特点递归就是在过程或函数里调用自身在使用递增归策略时必须有一个明确的递归结束条件称为递归出口过程当中系统为每一层的返回点局部量等开辟了栈来存储递归次数过多容易造成栈溢出等所以一般不提倡用递归算法设计程序有个莲花池里起初有一只莲花每过一天莲花的数量就会翻一倍假设莲花永远不凋谢天的时候莲花池全部长int b;double c;a=fn(3O);b=fn(23);c=(double)b/a;printf(%.2Olfnzc);int fn(int a)if(a=1)return 1;else a=fn(a-l)*2;return a;了递归算法的特点定义等例子列举的简洁适当值得学习一递归算法的定义递归算法是一种直接或者间接地调用自身的算法在计算机编写程序中递归算法对解决一大类问题是十分有效的它往往使算法的描述简洁而且易于理解二递归算递归算法的实质是把问题转化为规模缩小了的同类问题的子问题然后递归调用函数或过程来表示问题的解递归算法解决问题的特点递归就是在过程或函数里调用自身在使用递增归策略时必须有一个明确的递归结束条件称为递归出口过程当中系统为每一层的返回点局部量等开辟了栈来存储递归次数过多容易造成栈溢出等所以一般不提倡用递归算法设计程序有个莲花池里起初有一只莲花每过一天莲花的数量就会翻一倍假设莲花永远不凋谢天的时候莲花池全部长