数据结构二版

上传人:博****1 文档编号:569925913 上传时间:2024-07-31 格式:PPT 页数:53 大小:306.50KB
返回 下载 相关 举报
数据结构二版_第1页
第1页 / 共53页
数据结构二版_第2页
第2页 / 共53页
数据结构二版_第3页
第3页 / 共53页
数据结构二版_第4页
第4页 / 共53页
数据结构二版_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《数据结构二版》由会员分享,可在线阅读,更多相关《数据结构二版(53页珍藏版)》请在金锄头文库上搜索。

1、疑临诺菠丁遥大哼瑞动忘瞄绣捌剪丧噎翼彭额衅唯棵滤位媳潍减锗戊膏突数据结构二版数据结构二版数据结构数据结构 (第二版)(第二版)严蔚敏严蔚敏 吴伟民吴伟民 清华大学出版社清华大学出版社主讲:李树主讲:李树全全 电子科技大学电子科技大学电子科技大学电子科技大学计算机学院计算机学院计算机学院计算机学院翼棱贾俄刺涡矩注垒络眷爽卓诅达场圆瞒搽哎陷投午晶船燥柒薛醇厅悄毯数据结构二版数据结构二版第一章第一章 绪论绪论1.1 学习学习的意义及要求的意义及要求 1.2 的主要内容的主要内容 1.3 基本术语基本术语 1.4 算法描述及分析算法描述及分析胯遣处舟扇帚餐痉主她愿恋酒需偿虑仗瑶恫咋督腑同踪胀斑体井寄唁

2、撼抛数据结构二版数据结构二版1.1 学习学习的的意义意义及要求及要求一一.意义意义1. 算法和数据结构是算法和数据结构是计算机科学计算机科学的两大支柱的两大支柱 计算机科学早期定义为计算机科学早期定义为计算机科学早期定义为计算机科学早期定义为: : 研究研究研究研究算法算法算法算法的科学的科学的科学的科学 近期定义为近期定义为近期定义为近期定义为: : 研究研究研究研究数据数据数据数据的科学的科学的科学的科学种钨擅酬舟汹本梅腊眼彪檀粹穗径消污钒狡罢慷台早楚迂缉诀虐抑螟思梨数据结构二版数据结构二版1.1 学习学习的的意义意义及要求及要求2. 数据结构是程序设计的基础数据结构是程序设计的基础Pro

3、gram=Algorithms+Data StructureProgram=Algorithms+Data Structure数据结构数据结构数据结构数据结构是设计是设计是设计是设计OSOS、DBMSDBMS、编译等、编译等、编译等、编译等系统程序系统程序系统程序系统程序和各种和各种和各种和各种应用程序应用程序应用程序应用程序 的重要基础的重要基础的重要基础的重要基础卷饵八挫丝嚼钙刻涸散此昏腰因甭犬释套赶戮饵纳吸嗽痪呸变扶牌丹歉尉数据结构二版数据结构二版1.1 学习学习的的意义意义及要求及要求3. 是计算机专业的一门综合性是计算机专业的一门综合性专业基础课,是一门理论与实际紧密结合专业基础课,

4、是一门理论与实际紧密结合的基础课。的基础课。是计算机专业本科生必修学位课程是计算机专业本科生必修学位课程是计算机研究生入学考试必考科目是计算机研究生入学考试必考科目是软件人员水平考试内容是软件人员水平考试内容邢丽抑桑诽擦锑撒围绷茸诛默肤哲痊汐功纤踊江萎箕唁俯铝墓碌呢冷胯痴数据结构二版数据结构二版1.1 学习学习的的意义意义及要求及要求4. 与计算机科学技术其他相关与计算机科学技术其他相关领域的关系领域的关系数据结构数据结构问题求解问题求解算法理论算法理论数据模型数据模型设计方法设计方法描述语言描述语言侩悲敏角冬剐禽讼郸岁可祷哀湘法杀跨痘噬浅猪闲抡价细呆蘸贱疏等促供数据结构二版数据结构二版1.1

5、 学习学习的意义及的意义及要求要求二二.要求要求1. 掌握各类掌握各类基本数据结构类型基本数据结构类型 和相应的和相应的存储存储结构结构2. 提高提高阅读阅读 和和编写算法编写算法 的能力的能力3. 能针对给定问题,选择相适应的数据结构,能针对给定问题,选择相适应的数据结构, 并能设计和分析算法并能设计和分析算法疡讶悼英痘疙驰宦柔蚤遭丘常缄缨耀宣害赃艺私炸虽卜寒浸枯熏骸将矮川数据结构二版数据结构二版1.2 的主要内容的主要内容99080-3 班号班号 3202670 计算机学院办公室电话号码计算机学院办公室电话号码610054 电子科技大学邮编电子科技大学邮编510102780618748 身

6、份证号码身份证号码 例例1:99080-33202670610054510102780618748结论结论1.杂乱的数据不能表达和交流信息杂乱的数据不能表达和交流信息炙锅吱喇介脾雇赵较踏枝疯蜂甸驰块吱抓给阶兴掠斥迁辰国赦馋和透哲层数据结构二版数据结构二版1.2 的主要内容的主要内容例例例例2: 电话号码簿电话号码簿 (a1,b1) (a2,b2)(an,bn)其中:其中: ai为某人姓名,为某人姓名,bi为该人的电话号码。为该人的电话号码。要求:设计一个算法,给定一个姓名时,要求:设计一个算法,给定一个姓名时, 能查出此人的电话号码。能查出此人的电话号码。 如果姓名和电话号码的排列次序无规律,

7、如果姓名和电话号码的排列次序无规律, 则只能逐一比较姓名进行查找则只能逐一比较姓名进行查找 如果姓名按字典顺序组织,则查找就快捷多了如果姓名按字典顺序组织,则查找就快捷多了结论结论2.数据之间是有联系的数据之间是有联系的这些联系常常影响算法的选择和效率。这些联系常常影响算法的选择和效率。 DS就是要研究数据之间的联系。就是要研究数据之间的联系。阔碍径馒欣弛窝德枝蔫腕瘫淡絮借抛否首跳谣似顶频炬引尔嚷接匡胺勒颧数据结构二版数据结构二版1.2 的主要内容的主要内容例3:大学学生管理机构学校学校学校学校一系八系一系八系一系八系一系八系一年级二年级三年级四年级一年级二年级三年级四年级一年级二年级三年级四

8、年级一年级二年级三年级四年级班班班班班班班班张三李四张三李四张三李四张三李四结论结论数据之间是有结构的数据之间是有结构的例中数据之间呈分层结构(树状结构)例中数据之间呈分层结构(树状结构)DS就是要研究就是要研究数据之间的各类结构数据之间的各类结构。檀舒遂硅纯椰逐最豢其宣殆浑表救眺覆椭机蚁碴沏姚粥篮魏衰面冲刘紊类数据结构二版数据结构二版1.2 的主要内容的主要内容例:图书目录管理例:图书目录管理设每个书目含:书名,作者,登录号,分类,出版年月设每个书目含:书名,作者,登录号,分类,出版年月设每个书目含:书名,作者,登录号,分类,出版年月设每个书目含:书名,作者,登录号,分类,出版年月对图书目录

9、常有如下操作:对图书目录常有如下操作:对图书目录常有如下操作:对图书目录常有如下操作: 查找:某书在书库中是否存在?查找:某书在书库中是否存在?查找:某书在书库中是否存在?查找:某书在书库中是否存在? 插入:购进新书时的登录;插入:购进新书时的登录;插入:购进新书时的登录;插入:购进新书时的登录; 删除:报废或丢失的书,需从目录中去掉;删除:报废或丢失的书,需从目录中去掉;删除:报废或丢失的书,需从目录中去掉;删除:报废或丢失的书,需从目录中去掉;结论结论在某种数据结构上可定义一组运算在某种数据结构上可定义一组运算DS就是要研究各类数据结构上的各种运算。就是要研究各类数据结构上的各种运算。腮澡

10、瓷瓶篓胜榔撤衙扩仕汞塔轮您蛙矿戴党泣躺腺刻解沙才熬隘髓箔筑醒数据结构二版数据结构二版1.2 的主要内容综上所述:综上所述: DS主要研究内容:主要研究内容:数据的各种逻辑结构和物理结构,以及它们数据的各种逻辑结构和物理结构,以及它们之间的相应关系;之间的相应关系;对每种结构定义相适应的各种运算;对每种结构定义相适应的各种运算;设计出相应的算法;设计出相应的算法;分析算法的效率。分析算法的效率。 常见的数据结构有:数组、栈、队列、表、常见的数据结构有:数组、栈、队列、表、串、树、图和文件等。串、树、图和文件等。样曝琳纯疯巴酗叛惶曙逗纫桑懦卑幼贝祭粮贿之舵糊棱濒柳彻恐饯掌镑海数据结构二版数据结构二

11、版数据结构与问题求解1. 在计算机中建立一个与实际问题有比较密在计算机中建立一个与实际问题有比较密切对应关系的切对应关系的模型模型;2. 计算机内部的计算机内部的数据数据 表示了需要被处理的表示了需要被处理的实际对象,包括其内在的性质和关系;实际对象,包括其内在的性质和关系;3. 处理这些数据的处理这些数据的程序程序 则模拟对象领域中则模拟对象领域中的实际过程;的实际过程;4. 将计算机程序的运行将计算机程序的运行结果结果 在实际领域中在实际领域中给予解释,便得到实际问题的解。给予解释,便得到实际问题的解。氓答闷砚挛胸绍刑伟狰昼宫链婶话趁氢叭撂蹬廊捞洛迹锗戍式垫旋篮晰谰数据结构二版数据结构二版

12、例1、当你到图书馆借阅书籍时,你要通过计算机检索书目信息。在书目自动检索系统中,有一张按登录号顺序排列的书目文件和三张分别按书名、作者名和分类号顺序排列的索引表。计算机检索就是按某个特定要求(如给定书名)对书目文件查询。(书目文件)(书名索引)(作者索引)(分类索引)鉴巨乙致玫豺碾直耸醉闽侣爵田否痔够强抢蛹枯肖盂乔询传草古芒畸协钝数据结构二版数据结构二版例2、酒店管理系统中的客房分配问题。酒店要求每间客房出租率相等,以保证维持一个平均磨损率。对这一问题可用数据结构中的队列来解决;将酒店所有空闲客房排成一个队列,有客人入住则从队头分配客房,客人结帐离店则将空出的客房插入队尾。这样就能保证客房出租

13、率相等。队头队尾出租队头客房客人离店,空出客房插入队尾注:例1、例2都属于线性数据结构嘿煞份锹沏灭橙缅季祝婉抠背阎宾酶鲁虾桌复畦琶镀沪耪饰诞悠福羹孝嫁数据结构二版数据结构二版例3、计算机和人对弈问题。计算机和人对弈是因为事先已将对奕的策略输入计算机中。对弈的过程是在一定规则下随机进行,计算机操作对象是对弈过程中可能出现的棋盘状态-称为格局。下面看一下井字棋对弈。目前我们所接触的象棋软件、围棋软件的实现原理和井字棋是一样的。此类数据结构为树型结构付旷沙旺搓慢激鳞躁蓖骸晨寂颤档涝馏爹捌晾雁棵唆潮亲尝嘴康郸歉甸恤数据结构二版数据结构二版例4、一个城市的居民点铺设煤气管道,居民点之间的铺设费用可以估算

14、,要求工程完工后,每个居民点都能通气,并且总的费用最少。我们用图来表示这类问题。其中图的顶点表示居民点,边上的权值表示铺设费用。81429675317.564.582.545.634.544.271.564.528.555.230.475.0(A、费用核算)142935678(B、铺设方案)决攀游刃踞烧儒缮减菊磁曝螟宣斜甫酉祖杰猾自始佛瞧廉辗扛锡晋助瘦吮数据结构二版数据结构二版问题求解例子问题求解例子-五叉路口交通管理系统设计五叉路口交通管理系统设计五叉路口交通管理系统设计五叉路口交通管理系统设计BACDE对车辆可能行驶方向进行分组,要求任一组中各个方向行驶的对车辆可能行驶方向进行分组,要求任

15、一组中各个方向行驶的车辆可以同时安全行驶。分组越少,可同时行驶的车辆越多,车辆可以同时安全行驶。分组越少,可同时行驶的车辆越多,管理系统的质量就越高。管理系统的质量就越高。有有13个可能通行的方向:个可能通行的方向:AB, AC, AD, BA, BC, BD, DA, DB, DC, EA, EB, EC, ED。克谤绕敖罢挠介抒在哲冒毯坪忍搀韧蔼猖堂勒事冤腺昆尖警伴卸湾纠险巩数据结构二版数据结构二版交叉路口图式模型交叉路口图式模型将一种通行方向用一个结点表示将一种通行方向用一个结点表示将一种通行方向用一个结点表示将一种通行方向用一个结点表示( (椭圆椭圆椭圆椭圆) );在不能同时行驶的结点

16、间画一条连线;在不能同时行驶的结点间画一条连线;在不能同时行驶的结点间画一条连线;在不能同时行驶的结点间画一条连线;ABACADBCBDBADBDCDAEBECEAED问题求解:将图中结点进行分组,使有线连接的结点不在同一个组问题求解:将图中结点进行分组,使有线连接的结点不在同一个组里。要解决的问题已借助图的里。要解决的问题已借助图的模型模型模型模型 清楚而严格地表达出来。余下的清楚而严格地表达出来。余下的问题是能否设计一个总能得到最佳的分组方案的问题是能否设计一个总能得到最佳的分组方案的程序程序程序程序。剑视化窜猩糠瘦畏疏站恿颧寅鼓瞪般然好想牢成亲贞忙纂鲁蚕升镭肆斟哪数据结构二版数据结构二版

17、求解方法(求着色问题的近似解)求解方法(求着色问题的近似解)1.1. 选出未着色的结点,并用该新颜色上色;选出未着色的结点,并用该新颜色上色;选出未着色的结点,并用该新颜色上色;选出未着色的结点,并用该新颜色上色;2.2. 寻找仍未着色的结点,如果某结点与新颜色结点寻找仍未着色的结点,如果某结点与新颜色结点寻找仍未着色的结点,如果某结点与新颜色结点寻找仍未着色的结点,如果某结点与新颜色结点没有边相连,则将该结点用该颜色上色。没有边相连,则将该结点用该颜色上色。没有边相连,则将该结点用该颜色上色。没有边相连,则将该结点用该颜色上色。ABACADBCBDBADBDCDAEBECEAED结果:结果:

18、1. AB AC AD BA DC ED2. BC BD EA 3. DA DB4. EB EC审蓖洛鱼秆舌灭邻噎拓纫说颠讽肝搞火昨裳恃喷磅蝴揍辛谆葫锚讽届痞逆数据结构二版数据结构二版问题:设有问题:设有n个正常人和个正常人和n个精神病患者要过一条河,个精神病患者要过一条河,现有一条能容纳现有一条能容纳c(c2n)个人的小船,为防止患者个人的小船,为防止患者伤害正常人,要求无论在河的哪一边,正常人的人数伤害正常人,要求无论在河的哪一边,正常人的人数不得少于患者人数(除非正常人数为不得少于患者人数(除非正常人数为0)。又设每个)。又设每个人都会划船。试设计一个过河的最佳方案,即小船人都会划船。试

19、设计一个过河的最佳方案,即小船来回次数最少的算法。来回次数最少的算法。笆气盯胖莉单轿甜化咳翅团衣堆棵辟赖鲍宣央盛虽秉戏赋冷护趴瘫察癣乏数据结构二版数据结构二版解:解:1、模型构造:、模型构造: 用一个三元组(用一个三元组(x,y,t)表示渡河过程中的某个表示渡河过程中的某个状态。其中,状态。其中,x表示起始岸上正常人的人数,表示起始岸上正常人的人数,y表表示起始岸上患者人数,示起始岸上患者人数,t表示小船的位置,即:表示小船的位置,即:T=1 表示小船在起始岸边表示小船在起始岸边 0 表示小船在目的岸边表示小船在目的岸边杏涩临笨假围阿锦区疾湛济虽儡豫辙眼酉竭腺丢泪惶尖携个塔聪负铃菲篮数据结构二

20、版数据结构二版2、再构造一个图,图中的每一个顶点表示一个合、再构造一个图,图中的每一个顶点表示一个合法状态。合法状态所对应的三元组(法状态。合法状态所对应的三元组(x,y,t)必须满必须满足:足:x=0 或或 x=n 或或 x=y.于是,渡河方案的求解就转换成一个图的搜索问题于是,渡河方案的求解就转换成一个图的搜索问题找出从起始顶点(找出从起始顶点(n,n,1)到目的顶点到目的顶点(0,0,0)的一的一条包含边数最少的通路。若该通路不存在,表明该条包含边数最少的通路。若该通路不存在,表明该问题无解。问题无解。色蛊瘩器典别攒车裤需肖诛钠骇抚黎谁北各屈墙淆止秦返较沁邻肚渝切甩数据结构二版数据结构二

21、版3、例如,当、例如,当n=2,c=2时,各合法状态及其间的变时,各合法状态及其间的变换如图:换如图:(2,2,1)(0,2,0)(2,0,0)(1,1,0)(2,1,0)(2,1,1)(0,1,0)(0,2,1)(1,1,1)(0,0,0)己蛾洒巴叼兑蝴腋嗅印枉叮巳办瘪卡蠕蒜畴赘格剧明静泡怎柔寄串巢映梁数据结构二版数据结构二版1. 基本术语基本术语 数据数据数据数据(Data)Data):所有能被:所有能被:所有能被:所有能被计算机处理计算机处理计算机处理计算机处理的的的的符号符号符号符号的集合。的集合。的集合。的集合。 数据元素数据元素数据元素数据元素(Data ElementData E

22、lement):是数据这个集合中的):是数据这个集合中的):是数据这个集合中的):是数据这个集合中的一个个体。一个个体。一个个体。一个个体。 设给定数据集合为:设给定数据集合为:设给定数据集合为:设给定数据集合为:D=dD=d1 1,d d2 2,d dn n 则则则则d di i属于属于属于属于D D,并称,并称,并称,并称d di i为数据元素。为数据元素。为数据元素。为数据元素。 数据项数据项数据项数据项(Data ItemData Item):数据元素常常还可分为若干):数据元素常常还可分为若干):数据元素常常还可分为若干):数据元素常常还可分为若干个数据项,数据项是数据具有意义的最小

23、单位。个数据项,数据项是数据具有意义的最小单位。个数据项,数据项是数据具有意义的最小单位。个数据项,数据项是数据具有意义的最小单位。栅姆锑仔放之观名艺德奶赂火湖专惟撮剁嘲杰田舟相撰骨路栗晌呛竹俐奴数据结构二版数据结构二版1. 基本术语基本术语数据对象数据对象(Data Object): 具有相同特性的具有相同特性的数据元素的集合。数据元素的集合。例如:数据集合例如:数据集合D=0,1,A,B,Z则:数据对象正整数则:数据对象正整数N 0,1,数据对象字母数据对象字母C A,B,Z 数据元素是数据的一个个体,数据元素是数据的一个个体,数据对象是数据的一个子集。数据对象是数据的一个子集。类饶科馏臼

24、柑韦胆卤考诸色驶殖处泼源陡东速控衍话嘎沦隅降镭毙酮练谓数据结构二版数据结构二版集合线性结构树型结构图型结构基本概念和术语秘虱宛赤裙怯毯寇饺培裹兽汀僚丝晾酉汹诽首埠森识骇瓶裙础昭浴厘棱缀数据结构二版数据结构二版1. 基本术语基本术语数据结构数据结构(Data Structure):是带有结构):是带有结构的数据元素的集合。的数据元素的集合。所谓结构就是数据元素之间的关系,即描述数据元所谓结构就是数据元素之间的关系,即描述数据元所谓结构就是数据元素之间的关系,即描述数据元所谓结构就是数据元素之间的关系,即描述数据元素之间的运算及运算规则。素之间的运算及运算规则。素之间的运算及运算规则。素之间的运算

25、及运算规则。用集合的形式描述,数据结构是一个二元组:用集合的形式描述,数据结构是一个二元组:用集合的形式描述,数据结构是一个二元组:用集合的形式描述,数据结构是一个二元组:DS=(DDS=(D,R)R) 其中:其中:其中:其中:D D是数据元素的集合,是数据元素的集合,是数据元素的集合,是数据元素的集合,R R是是是是D D上关系的集合。上关系的集合。上关系的集合。上关系的集合。 简言之,数据元素和其相互关系称为数据结构简言之,数据元素和其相互关系称为数据结构简言之,数据元素和其相互关系称为数据结构简言之,数据元素和其相互关系称为数据结构玉耪郁粤藐用注盐糙托鹅扳现皋孔动岩稳冗谜擞赫鸡龋史表霉掸

26、佯尉斯主数据结构二版数据结构二版基本概念和术语数据结构的形式定义:DATA_STRUCTURE=(D,S)其中:D是数据元素的有限集,S是D上关系的有限集例6、复数的数据结构为:COMPLEX=(C,R)其中:C是含两个实数的集合C1,C2;R=P,P是定义在集合C上的一种关系,其中有序偶表示C1是复数的实部,C2是复数的虚部。蟹傻码硫晰牲揭淄兔崖滩辊平吮铲仿毫既铅辱溢陌葵镀蚌驻逸戚版石春许数据结构二版数据结构二版基本概念和术语例、假设学校的每个课题小组由一位教师,一至三名研究生及一至六名本科生组成,小组成员之间的关系是:教师指导研究生,而由每位研究生指导一至二名本科生。则定义如下数据结构:G

27、ROUP=(P,R)其中:P=T,G1, .,Gn,S11,.,Snm 1n3,1m2 R=R1,R2 R1=|1in,1n3 R2=|1in,1jm,1n3,1m2上述数据结构的定义仅是对操作对象的一种数学描述,其中的关系描述的是数据元素间的逻辑关系,又称数据的逻辑结构。魏塔刚脏唯名师馁导动债密梧鲤捞寿这开喊诽准魂囤助攻绊崔臆惜褂锭患数据结构二版数据结构二版1. 基本术语基本术语逻辑结构逻辑结构(Logical Structure):):指数据元素之间的结构关系。指数据元素之间的结构关系。物理结构物理结构(Physical Structure):):指数据结构在机内的表示,也称为存储结构。指

28、数据结构在机内的表示,也称为存储结构。孺盘呵移挡衍铺垮植篆怕手苦情影尤评罩女喂枯私列哪楼鞠伙扛雏沧些狞数据结构二版数据结构二版基本概念和术语假设用两个字长的位串表示一个实数,则可用地址相邻的四个字串表示一个复数。下图(A)表示复数Z1=3.0-2.3i和Z2=-0.7+4.8i的顺序存储结构;图(B)表示复数Z1的链式存储结构,其中实部和虚部之间的关系用值为“0415”的指针来表示3.0-2.3-0.74.80300030206320634(A)-2.33.00415041506110613(B)荔包是近粹盾毅掳趟嚷琉眉谚讲蛰槛饼净驱豁胎倘枚围圈雁瞒阎垮钓朝蓖数据结构二版数据结构二版1. 算法

29、算法描述和算法分析描述和算法分析一一算法算法(Algorithm)算法概念:算法是一个有限的指令集,算法概念:算法是一个有限的指令集, 遵循指令流可以完成特定的功能。遵循指令流可以完成特定的功能。算法基本特性: 有穷性:算法经有限步后结束; 确定性:下一步必须是明确的; 可行性:每一步是可执行的;记驳捻疙厘熙寺掉洞拣信靛肘弥巢粱点阿两逸言苍澄其斜磊线恩豪喉架头数据结构二版数据结构二版例:试说明下述过程是否是一个算法:例:试说明下述过程是否是一个算法:1、开始;、开始;2、n=0;3、n:=n+1;4、重复、重复3;5、结束。、结束。例:试说明下述不超过例:试说明下述不超过100万次的计数过程是

30、一个算法:万次的计数过程是一个算法:1、开始;、开始;2、n=0;3、n:=n+1;4、若、若n=106,则顺次执行则顺次执行5,否则重复,否则重复3;5、结束。、结束。陋杂话叮僳萧迫砰差号障脉澜蛆遂劲扩慌纂阅敏服由厌瓤掸咋晋伞谍拼减数据结构二版数据结构二版1. 算法算法描述和算法分析描述和算法分析算法与程序的区别算法与程序的区别 算法算法算法算法 是解决问题的一种方法或一个过程,考虑如何将是解决问题的一种方法或一个过程,考虑如何将是解决问题的一种方法或一个过程,考虑如何将是解决问题的一种方法或一个过程,考虑如何将输入转换成输出,一个问题可以有多种算法。输入转换成输出,一个问题可以有多种算法。

31、输入转换成输出,一个问题可以有多种算法。输入转换成输出,一个问题可以有多种算法。 程序程序程序程序 是用某种程序设计语言对算法的具体实现。是用某种程序设计语言对算法的具体实现。是用某种程序设计语言对算法的具体实现。是用某种程序设计语言对算法的具体实现。主要区别在:主要区别在:有穷性有穷性 和和描述方法描述方法 程序可以是无穷的,例如程序可以是无穷的,例如OS,算法是有穷的;,算法是有穷的; 程序是用程序设计语言描述,在机器上可以执行;程序是用程序设计语言描述,在机器上可以执行; 算法还可以用框图、自然语言等方式描述。算法还可以用框图、自然语言等方式描述。煌吸粳埋竭肮钾侍撮王晤猛浓酮饱酱酗官藤锯

32、驼含术柔遂擞语猛谆梁柯呀数据结构二版数据结构二版算法及其评价评价一个算法一般从四个方面进行:正确性、运行时间、占用空间和简单性。运行时间用时间复杂度来衡量。所谓时间复杂度是指算法中包含的简单操作次数,一般只计算相应的数量级:O(1),O(log2n),O(n),O(n2)等。常用时间复杂度有如下关系:O(1) O(log2n) O(n) O(nlog2n) O(n2) . O(n k) O(2n)扛润讲卿鹅势郸汹赘求匈卢奠玉涯驮岸狈甚倘毛泡核揽杂皂飘孰衔陀诲与数据结构二版数据结构二版1. 算法描述算法描述和算法分析和算法分析二算法描述语言二算法描述语言类类Pascal为了便于理解掌握算法的思想

33、和实质,本为了便于理解掌握算法的思想和实质,本课程采用类课程采用类Pascal语言来描述各种算法。语言来描述各种算法。所有的算法均以过程或函数的形式表示;所有的算法均以过程或函数的形式表示;PROC过程名过程名 (参数表参数表);算法说明算法说明语句组语句组ENDP; 过程名过程名届挛渐脱捆洞颇熊忙蓝诫键鹃壬订济望像连杰脖碉屎再渺峡召沼梦抵量究数据结构二版数据结构二版1. 算法描述算法描述和算法分析和算法分析 FUNC 函数名函数名 (参数表参数表):类型;:类型;函数说明函数说明语句组语句组 RETURN(f)ENDF; 函数名函数名调用过程语句为:过程名(参数表)调用过程语句为:过程名(参

34、数表)调用函数语句为:变量名:函数名(参数表)调用函数语句为:变量名:函数名(参数表)碗秘曲仿涕钒饰绩遥章箕拉案军祖稿许瞅峡把仁缺狸誉顶唐峻版玖屏堑均数据结构二版数据结构二版1. 算法描述算法描述和算法分析和算法分析出错语句:出错语句:ERROR(出错信息出错信息););注释语句:注释内容注释语句:注释内容语句结束符号:;语句结束符号:;语句组符号:语句组符号:基本函数:基本函数:max()、min()、 abs() 、eof 、eoln布尔运算:布尔运算:AND、OR、NOT、CAND、COR剖今渴挥吧婉扛谭灸销稠绢狭盟娃掌尺赛粒孺伟岿喊粳衫执狼溢骋菠诊厦数据结构二版数据结构二版1. 算法描

35、述算法描述和算法分析和算法分析赋值语句:变量名:表达式;赋值语句:变量名:表达式;分支语句:分支语句:IF 条件条件 THEN 语句语句ELSE语语句;句;CASE 条件:语句;条件:语句;条件条件n : 语句语句n; (ELSE 语句语句n+1) ENDC;昧五涉辛桅扶寥期茁星隋总序吁种削竣瘤扣敏跑撩跟嫁炙敝澳髓惊蚤阴看数据结构二版数据结构二版1. 算法描述算法描述和算法分析和算法分析循环语句:循环语句:FOR FOR 变量名:初值变量名:初值变量名:初值变量名:初值 TO TO 终值终值终值终值 DO DO 循环体;循环体;循环体;循环体;FOR FOR 变量名:初值变量名:初值变量名:初

36、值变量名:初值 DOWNTO DOWNTO 终值终值终值终值 DO DO 循环体;循环体;循环体;循环体;WHILE WHILE 条件条件条件条件 DO DO 循环体;循环体;循环体;循环体;REPEAT REPEAT 循环体循环体循环体循环体 UNTIL UNTIL 条件;条件;条件;条件;标准输入输出过程:标准输入输出过程:read(变量表);(变量表); write(变量表);(变量表);汗湃诌改御应悔埋哦招哦轧解偶啼避苟代栗私惯帅蜜妈失港煮耍居郴带石数据结构二版数据结构二版1. 算法描述和算法描述和算法分析算法分析三算法分析三算法分析如何衡量一个如何衡量一个正确算法正确算法的好坏?的好

37、坏?衡量的三个尺度:衡量的三个尺度:运行所花费的时间(算法的时间特性);运行所花费的时间(算法的时间特性);所占用存储空间的大小(算法的空间特性);所占用存储空间的大小(算法的空间特性);其他(可读性、易调性、健壮性等)。其他(可读性、易调性、健壮性等)。时间和空间特性的巨大改进源于更好的数据时间和空间特性的巨大改进源于更好的数据结构或算法。结构或算法。愿效孟凛泡或硼勉龟绍们拭譬润衅芳仔陡衅函勺步琼眯迸怖护氏剖那诱旬数据结构二版数据结构二版1. 算法描述和算法描述和算法分析算法分析语句频度语句频度(Frequency Count):):语句可能重复执行的最大次数。语句可能重复执行的最大次数。语

38、句可能重复执行的最大次数。语句可能重复执行的最大次数。时间复杂度时间复杂度(Time Complexity):):设算法中所有语句的语句频度为设算法中所有语句的语句频度为设算法中所有语句的语句频度为设算法中所有语句的语句频度为t(n)t(n),f(n)f(n)是当是当是当是当n n趋向无穷大时与趋向无穷大时与趋向无穷大时与趋向无穷大时与t(n)t(n)为同阶无穷大,为同阶无穷大,为同阶无穷大,为同阶无穷大,则算法的时间复杂度则算法的时间复杂度则算法的时间复杂度则算法的时间复杂度T(n)=O(f(n)T(n)=O(f(n)其中:其中:其中:其中:n n为算法计算量或称为规模(为算法计算量或称为规

39、模(为算法计算量或称为规模(为算法计算量或称为规模(sizesize);););); f(n) f(n)是运算时间随是运算时间随是运算时间随是运算时间随n n增大时的增长率;增大时的增长率;增大时的增长率;增大时的增长率; O(f(n) O(f(n)是算法时间特性的量度。是算法时间特性的量度。是算法时间特性的量度。是算法时间特性的量度。慢摇烁语磐镑矫捂泉讶攫柞余嗣羽骇网眼胀央玫蓄辨洞髓须腿羡左怠蒲锗数据结构二版数据结构二版1. 算法描述和算法描述和算法分析算法分析例例例例:程序段程序段程序段程序段 语句频度语句频度语句频度语句频度 时间复杂度时间复杂度时间复杂度时间复杂度1. x:=x+11.

40、 x:=x+1; 1 O(1) 1 O(1) 常数阶常数阶常数阶常数阶2. FOR i:=1 TO n DO x:=x+12. FOR i:=1 TO n DO x:=x+1; n O(n) n O(n) 线性阶线性阶线性阶线性阶3. FOR i:=1 TO n DO n3. FOR i:=1 TO n DO n FOR j:= 1 TO n DO x:=x+1 FOR j:= 1 TO n DO x:=x+1; n2 O(n n2 O(n2 2) ) 平方阶平方阶平方阶平方阶根非女协氦原北援耐爽蓖骄档散筋过涵醛奇艘粥裴霓庆剥锚杨涉润唤年鲜数据结构二版数据结构二版算法及其评价例8、计算下面程序

41、的时间复杂度:For i:=1 to (n-1) do y:=y+1; for j:=0 to (2 * n) do x:=x+1; 其中语句的频度是n-1,语句的频度是(n-1)*(2n+1)=2n2-n-1,则该程序段的时间复杂度T(n)=O(n2)唱况敝砖疟库差裔恐战脉最聘庐侗佃圭瓢承宦祈号忘旺丧朵现及葱疥达彰数据结构二版数据结构二版算法及其评价例9、计算下面程序的时间复杂度: i:=1; while (in) do i:=i*2; 语句频度是1,语句频度是f(n),则有:2f(n) n f(n) log2n,取最大值f(n)=log2n该段程序的时间复杂度T(n)=O(log2n)草戮

42、光润鹤娃少促男墨扒诌燎敝堆逛遇将那贴粱恋堰难跨黑筋捷穗语嗓嚏数据结构二版数据结构二版算法及其评价例10、计算下面程序的时间复杂度:A:=0;b:=1; for(i:=2;in;i+) s:=a+b; b:=a; a:=s; T(n)=2+3*(n-1)=3n-1=O(n)剑五孩倡现舒昼谚右非很喀漆厘膨黄柒屿噪鼓十需顿锁脂脂医勉摄蹲锹趋数据结构二版数据结构二版算法及其评价例11、计算下面程序中order()的时间复杂度: a=2,5,1,7,9,3,6,8order(int j,int m) int i,temp; if(jm) for(i=j+1;im;i+) if(ai1) 0 (n=1)求

43、解过程:T(n)=T(n-2)+(n-2)+(n-1) =T(n-3)+(n-3)+(n-2)+(n-1) =. =(T(1)+1)+2.+n-1 =0+1+2.+n-1 =n(n-1)/2=O(n2)还豆窑药混同熊喳滋锨园殴赴冻蛇暇启卖辽馋候薛泼印谐仟潜矮迢扁疫论数据结构二版数据结构二版算法与时间复杂性的关系算法与时间复杂性的关系设:设:设:设:A1A1,A2A2和和和和A3A3是求解同一问题的不同算法,其时间是求解同一问题的不同算法,其时间是求解同一问题的不同算法,其时间是求解同一问题的不同算法,其时间复杂度分别为:复杂度分别为:复杂度分别为:复杂度分别为:O(n)O(n),O(nlogn

44、)O(nlogn),O(N!)O(N!)。C1C1和和和和C2C2为计算机,且为计算机,且为计算机,且为计算机,且C2C2的计算速度是的计算速度是C1C1的的的的1010倍。倍。倍。倍。复杂度复杂度复杂度复杂度 C1 C1可解规模可解规模可解规模可解规模 C2 C2可解规模可解规模可解规模可解规模 可解规模的关系可解规模的关系可解规模的关系可解规模的关系O(n) N11 N21 N21=10N11O(n) N11 N21 N21=10N11O(nlogn) N12 N22 N22=10N12O(nlogn) N12 N22 N22=10N12O(N!) N13 N23 N23=N13+O(N!

45、) N13 N23 N23=N13+小常数小常数小常数小常数不必追求高效算法,低效算法可由高速计算机来弥不必追求高效算法,低效算法可由高速计算机来弥补的看法是错误的。补的看法是错误的。迭埋畏它穷蛰形未骋冗汤朗俺下拐蚁吏拟轩凤粹殆乃壹实庆架添疲抑晾蹋数据结构二版数据结构二版第一章第一章 小结小结数据结构概念数据结构概念算法时间复杂度算法时间复杂度轩姻祁情习堵蛰型深傲江妒皿绵履安萤又线共楞歼驶消察梳问赤仙泪仅既数据结构二版数据结构二版作业作业1、设有数据结构、设有数据结构(D,R),其中其中D=(e1,e2,e3,E4,e5,e6,e7),R=r,r=(e1,e2),(e1,e7),(e2,e3)

46、,(e2,e4),(e3,e5),(e4,e5),(e2,e6),(e5,e6),(e6,e7).试按图论中图的画法惯例画出试按图论中图的画法惯例画出该数据结构图。该数据结构图。作业作业2、已知、已知6个队个队A,B,C,D,E和和F进行球赛,已经进行球赛,已经比赛过的场次有比赛过的场次有A同同B,C,B同同D,F,E同同C,F.设每个设每个队每周比赛一次,试给出一种调度算法,使得所有队每周比赛一次,试给出一种调度算法,使得所有的队能在最短的时间内相互之间比赛完。的队能在最短的时间内相互之间比赛完。宏锰疮蔚贼驭惶包闽侥始陈瘟妄眺泻平酮彰铺碰单岛时庄霓寅更汰岁狸摹数据结构二版数据结构二版作业作业

47、3 计算计算n!的递归函数的递归函数fac(n)如下,试分析它的如下,试分析它的运行时间。运行时间。Function fac(n:integer):integer; begin (1) if n=1 then (2) fac:=1 else (3) fac:=n*fac(n-1)End; 曹摸枉鲍倔需担肝酥坝蜡磊宠宽赎茶慨孜线璃蹬件堤厌沾筹淆趋贵渣拇林数据结构二版数据结构二版作业作业4:试编写算法求一元多项式:试编写算法求一元多项式Pn=(aixi)(0In)的值的值Pn(x0).注意本题中的输入为注意本题中的输入为ai,I=0,1,n,x0和和n,输出量为输出量为pn(x0)笑峻册蹋跌溃哑泌珍铀说着匹祸屯坯真锭愁煞魔甜钦愁拷膘件淤雏窿离晦数据结构二版数据结构二版

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号