下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构与算法(Python)-04:递 据 〉本章目据结与 〉什么是递与算( 〉实现递(〉)〉〉动态规划Dynamic地球与空间科学学院 本章目据 据结与 与算( (〉)〉〉地球与空间科学学院 什么是递归结数 〉 递归是一种解决问题的方,其精髓是将问题分解为规模更小的据 同问题,持续分,直到问题规模小到可以用非常简单直接的方式构 。结与法 递归的问题分解方式非常独特,其算法方面的明显特征就是:在法 法流程中调用自身 递归为我们提供了一种对复杂问题的优雅解决方案,精妙的递归 法常会出奇简单,令人赞地球与空间科学学院 初识递归 我们先从一个不太复杂的问题开据构 问题:给定一个列表,返回列表中所有数的构 算( 程序很简单,但假如没有循环语句( 还能对不确定长度〉 我们认识到求和实际上最终是由一次次的加法实现的,而加法函恰有两个参数,这个是确定的。 看看怎么想办法,将问题规模较大的列表求和,分解为规模较小且固定的两个数求和(加法地球与空间科学学院 初识递归 我们换一个方式来表达数列求和:全括号表达 结与 当然,由于加法可交换,写成下面的方式可能更方便些与法 法(〉 上面这个式子,最内层的括号(7+9,这是无需循即可计算的,实际上整个求和的过程是这样:) 观察上述过程中所包含的重复模式,可以把求和问题归纳成这样问
相同问题,规地球与空间科学学院 初识递归 上面的递归算法变成程与 与算 (
) 上面程序的要点地球与空间科学学院 递归程序如何被执行 递归函数调用和返回过程的链据地球与空间科学学院 递归“三定律 为了 的“机器人三定律”致敬,递归算法也总结出“ 定律 构 法 法( 数列求和的递归算法首先具备了基本结束条件:当列表长度为1的候,直接输出所包含的唯一数,使递归算法具备了最终 是什么〉数列求和处理的数据对象是一个列表,而基本结束条件是长度为1的〉 调用自身是递归算法中最难理解的部分实际上我们理解为“分解成了规模更小的相同问题”就可以了,在数列求和算法中,就是“数列的求和问。地球与空间科学学院 随堂作业4- 用listsum计算数列求和[2,4,6,8,10]要进行多少次递归调用 A)6B)5C)4算 写出计算阶乘的递归程算 (def chbpku和课 具有提地球与空间科学学院 整数转换为任 这个在数据结构栈里讨论过的算法,又回来了结 结构 如果上次你被“入栈”“出栈”搞得挺晕乎的话,这次递归算法法 定会让你感到清法 我们用最熟悉的十进制分析下这个问十进制有十个不同符号:convString地球与空间科学学院 整数转换为任 我们用整数除,和求余数两个计算来将整数一步步拆结 结构 问题就分解为算 (整数商成为“更小规模”问题,通过递归调用自身)地球与空间科学学院 整数转换为任意进制:代 下面就是递归算法的代构算算)地球与空间科学学院 递归调用的实 当一个函数被调用的时候,系统会把调用时的现场(包括所有的 部变量,以及返回地址)压入到调用栈Call结 每次调用,压入栈的现场数据称为StackFrame栈与法 当函数执行完成,返回时,要从调用栈的栈顶取得返回地址,把法 回值放到栈顶,恢复现场,弹出栈帧,按地址返回 返回 返回 地球与空间科学学院 递归的故 一个古老 :有始无终的无尽递结 结 与 法 前目的地): : 游轮 地球与空间科学学院 随堂作业4- 编写将字符串反转的递归函 def算 编写回文词判断的递归函算 def( chbpku和课 具有提)地球与空间科学学院 递归可视化:图 前面的种种递归算法展现了其简单而强大的一面,但还是难有个 观的概念,下面我们通过递归作图来展现递归调用的视觉影结 Python的海龟作图系统turtle算 算 (爬行:forward(n转向:left(a 笔触:penup(pendown(pensize( 使用方importturtletturtle.Turtlew=turtle.Screen()#获取屏幕对象,用于最后的点击自动关闭窗口 地球与空间科学学院 海龟作 画正方据构 画五边构与 画六边法 画五角)地球与空间科学学院 一个递归作图的例子:螺(最小规模,0直接退 减小规模,边长减分形树:自相似递归图 分形Fractal,是1975年由Mandelbrot开创的新学据与法结 〉 通常被定义为“一个粗糙或零碎的几何形可以分成个部分构 且每一部分都(至少近似地)是整体缩小后的形状”,即具有自相算 。与法( 自然界中能找到众多具有分形性质的物 ) 地球与空间科学学院 yy0分形树:自相似递归图0 自然现象中所具备的分形特性,使得计算机可以通过分形算法生结 非 真的自然场景,下面我们以树为例做一个粗糙的近结构 分形是在不同尺度上都具有相似性的事物,将这种观点放在对树法 观察上,我们就能看出,一棵树的每个分叉和每条树枝,实际上法 具有整棵树的外形特征(也是逐步分叉的 这样,我们可以把树分解为三个部分:树干、左边伸出的小树、 边伸出的小大大空分形树:代算
(法最小规模,0(右倾20)减小规模,树干减回右倾20度,即回
地球与空间科学学院 分形树:运 注意海龟作图的次结 结画树,树干长度斯基三角形Sierpinski 分形构造,平面 斯基三角形 斯基金字 实际上,真正 结 与 ( ()斯基三角形:作图 首先,根据自相似特性 斯基三角形是由3个相同 基三角形按照品字形拼叠而成 由于我们无法真正做 斯基三角形(degree->∞),只能法 degree有限的近似图形法( 在degree有限的情况下,degree=n的三角形,是由3个degree=n-的三角形按照品字形拼叠而成,同时,这3个degree=n-1的三 边长均为degree=n的三角形的一半(规模减小)0地球与空间科学学院
斯基三角形:代等边三角形(左上右顶点次序算与最
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年安溪沼涛中学秋季招聘编外合同制教师备考题库及一套参考答案详解
- 2026年·长影集团招聘备考题库及一套答案详解
- 2026年山西大地环境投资控股有限公司社会招聘116人备考题库及一套完整答案详解
- 2026年商丘工学院教师招聘79人多岗多人备考题库有答案详解
- 2026年国家电投集团陕西电力有限公司招聘备考题库参考答案详解
- 2026年东阳市六石街道社区卫生服务中心编外人员招聘备考题库及完整答案详解1套
- 2026年吉林大学白求恩第一医院肿瘤科招聘备考题库及1套完整答案详解
- 2025年黔东南州特种设备检验所招聘备考题库完整参考答案详解
- 2026年尤溪埔山幼儿园诚聘英才备考题库及参考答案详解
- 2025年平阳县兴阳控股集团有限公司下属房开公司公开招聘项目制员工备考题库及参考答案详解
- 2026年马年德育实践作业(图文版)
- 医院实习生安全培训课课件
- 四川省成都市武侯区西川中学2024-2025学年八上期末数学试卷(解析版)
- 2024人教版七年级数学上册全册教案
- GB/T 2076-1987切削刀具用可转位刀片型号表示规则
- GB/T 20033.3-2006人工材料体育场地使用要求及检验方法第3部分:足球场地人造草面层
- GB/T 18997.2-2020铝塑复合压力管第2部分:铝管对接焊式铝塑管
- GB/T 10067.47-2014电热装置基本技术条件第47部分:真空热处理和钎焊炉
- 状语从句精讲课件
- JJG544-2011《压力控制器检定规程》规程试题试题
- 施工现场车辆进出冲洗记录
评论
0/150
提交评论