版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据结构和算法作者:小甲鱼让编程改变世界Change the world by program递归定义在高级语言中,函数自己调用和调用其他函数并没有本质的不同。我们把一个直接调用自己或通过一系列的调用语句间接地调用自己的函数,称作递归函数。不过,写递归程序最怕的就是陷入永不结束的无穷递归中。切记,每个递归定义必须至少有一个条件,当满足这个条件时递归不再进行,即函数不再调用自身而是返回值。比如之前我们的Fbi函数结束条件是:i 0这样我们就不难设计出递归算法:int factorial( n )if( 0 = n ) return 1;else return n * factorial( n -
2、 1 );factorial( 5 ) = 5 * factorial( 4 )factorial( 4 ) = 4 * factorial( 3 )factorial( 3 ) = 3 * factorial( 2 )factorial( 2 ) = 2 * factorial( 1 )factorial( 1 ) = 1 * factorial( 0 )递归定义假设我们n的值传入是5,那么:实例分析题目要求:编写一个递归函数,实现将输入的任意长度的字符串反向输出的功能。例如输入字符串FishC,则输出字符串ChsiF。应用递归的思想有时可以很轻松地实现一些看似不太容易实现的功能,例如这道题
3、。要将一个字符串反向地输出,童鞋们一般采用的方法是将该字符串存放到一个数组中,然后将数组元素反向的输出即可。这道题要求输入是任意长度,所以不用递归的话,实现起来会比较麻烦(当然你可以用之前我们讲过的动态申请内存那招)。实例分析我们说过,递归它需要有一个结束的条件,那么我们可以将“#”作为一个输入结束的条件。void print()char a;scanf(“%c”, &a);if( a !=#) print();if( a !=#) printf(“%c”, a);实例分析假设我们从屏幕上输入字符串:ABC#输入Aprint()输出A输入Bprint()输出B输入Cprint()输出C输入#a
4、=#a=#分治思想分而治之的思想古已有之,秦灭六国,统一天下正是采取各个击破、分而治之的原则。而分治思想在算法设计中也是非常常见的,当一个问题规模较大且不易求解的时候,就可以考虑将问题分成几个小的模块,逐一解决。分治思想和递归算是有亲兄弟的关系了,因为采用分治思想处理问题,其各个小模块通常具有与大问题相同的结构,这种特性也使递归技术有了用武之地。我们接下来通过实例来讲解。折半查找算法的递归实现折半查找法是一种常用的查找方法,该方法通过不断缩小一半查找的范围,直到达到目的,所以效率比较高。因为这个在零基础入门学习C语言等基础教程中已经详细讲解过,小甲鱼这里就通过文字教程简单给大家回顾下算法的主要思路。从算法的折半查找的过程我们不难看出,这实际上也是一个递归的过程:因为每次都将问题的规模减小至原来的一半,而缩小后的子问题和原问题类型保
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 纺纱厂安全生产培训制度
- 内分泌科糖尿病合并心脏病治疗指南
- 2026江西南昌市西湖区图书馆招聘1人备考题库(预热题)附答案详解
- 2026福建福州市光荣院招聘行政人员1人备考题库含答案详解【研优卷】
- 2026广东深圳市龙岗区坂田街道上品雅园幼儿园招聘1人备考题库及1套参考答案详解
- 哮喘急性发作处理流程指南
- 2026上海复旦大学化学系舒校坤课题组招聘全职博士后备考题库附完整答案详解(各地真题)
- 2026广西贵港市覃塘区工商业联合会招聘编外人员1人备考题库【夺冠系列】附答案详解
- 中学生心理健康辅导活动计划
- 英语初中生词汇专项训练与复习资料
- 党课讲稿:践“廉行”强“廉政”守“廉心”勇担新时代廉洁从政使命
- 2025年海南琼中县事业编考试题及答案
- GB/T 7582-2025声学听阈与年龄和性别关系的统计分布
- 旋挖干成孔灌注桩施工方案
- 2026年新能源汽车动力电池回收体系构建行业报告
- 税务延期申请报告范本(3篇)
- 北京2025年北京市人民政府外事办公室所属事业单位招聘笔试历年参考题库附带答案详解
- GB/T 46842-2025资产管理文化数字资产交易实施指南
- 2025年十堰市教育局直属学校招聘真题
- 2025年云南省文山州砚山县辅警招聘考试题库附答案解析
- 《轨道工程施工技术》课件 长钢轨铺设
评论
0/150
提交评论