- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
数据结构课程组数据结构课程组数据结构课程组第二章算法的构造及评价哈工大计算机科学与技术学院数据结构课程组*第1页,共30页,星期日,2025年,2月5日2.1逐步求精的算法构造过程2.1.1算法的定义1.计算能由一个给定的计算模型机械地执行的规则(或步骤)序列称为该计算模型的一个计算.注:一个计算机程序是一个计算(计算模型是计算机);计算可能永远不停止—不是算法.2.算法是一个满足下列条件的一个计算(程序):(1)有穷性/终止性:总是在执行有穷步后停止;(2)确定性:每一步必须有严格的定义和确定的动作;(3)能行性:每个动作都能被精确地机械执行;(4)输入:有0个和多个满足约束条件的输入;(5)输出:有一个或多个满足约束条件的结果.第2页,共30页,星期日,2025年,2月5日2.1.2算法构造过程实际上就是用计算机求解一个问题的过程1.模型化对实际问题进行分析,选择适当的数学模型来描述问题,即模型化。2.确定解决思路根据模型,找出解决问题的思路方法(算法的原型,一般用自然语言描述)。3.逐步求精对用自然语言等描述的算法逐步细致化、精确化和形式化。这一阶段可能包括多个步骤。当到达适当精度时,许多非形式的描述可转变为基于ADT的形式化描述。4.ADT的实现对每个ADT,选择适当的数据结构表示数学模型,并用相应的函数实现每个操作。第3页,共30页,星期日,2025年,2月5日算法逐步求精实例例2.1.2交叉路口的交通安全管理问题DCBAE图2.1一个交叉路口问题描述一个具有多有多条通路的交叉路口,当允许某些通路上的车辆在交叉路口“拐弯”时,必须对其他一些通路上的车辆加以限制,不允许同时在交叉路口“拐弯”,以免发生碰撞.问题要求(1)设置一组交通灯,实现安全管理(无碰撞管理).(2)使交通灯的数目最少.第4页,共30页,星期日,2025年,2月5日问题的分析所有这些可能的“拐弯”构成一个集合.将此集合分成组,使得每组中所有的“拐弯”都能同时进行而不发生碰撞.每组对应一个指挥灯,保证不碰撞;用尽可能少的指挥灯归结为分成尽可能少的组.问题归结为如何进行集合的划分?第5页,共30页,星期日,2025年,2月5日模型化(1)用图作为交叉路口的数学模型;(2)每个“拐弯”对应图中的一个顶点;(3)若两个“拐弯”不能同时进行,则用用一条边把这两个“拐弯”所对应的两个结点连接起来,并且说这两个顶点是相邻的。ABACADBADCEDBCBDEADADBEBECDCBAE一个交叉路口第6页,共30页,星期日,2025年,2月5日算法的基本思路转化为图的着色问题(着同一颜色的结点即为一组)。常见算法为(1)穷举法(2)试探法(3)贪心法“贪心”算法的基本思想是首先用第一种颜色对图中尽可能多的顶点着色(尽可能多表现出“贪心”),然后用第二种颜色对余下的顶点中尽可能多的顶点着色,如此等等,直至所有的顶点都着完色。第7页,共30页,星期日,2025年,2月5日算法原型(自然语言描述)(1)将所有的结点设置为未着色(2)当有未着色的结点时,进行如下步骤(3)产生一种新的颜色(4)选取某个未着色的点,用此新颜色对其着色(5)扫描所有未着色的顶点,对其中的每个顶点尽可能的用此新颜色着色。(依据为它是否与已着新颜色的任何顶点相邻。若不相邻,则用新颜色对它着色。)(此处体现了贪心)。(6)重复步骤(2)-(5),直到所有的结点均以着色第8页,共30页,星期日,2025年,2月5日第一步求精(伪代码描述)voidgreedy(G,newclr)GRAPHG;SETnewclr;/*类型GRAPH和SET有待具体说明*//*本程序把G中可以着同一色的顶点放入newclr*/{(1)newclr=?(2)for(G中所有未着色的顶点v)(3)if(v不与newclr中的任何顶点相邻){(4)对v着色;(5)将v放入newclr;}};voidColor(G)GRAPHG;/*类型GRAPH有待具体说明*/{SETclr;clr=?;while(G中有未着色的顶点){SETnewcl
您可能关注的文档
最近下载
- “他她它”的用法区别(课件)-2021-2022学年语文一年级上册.pptx VIP
- 2025年春季江苏省港口集团校园招聘笔试备考题库及答案解析.docx VIP
- 幼儿园社会治安最小应急单元组织机构.docx VIP
- 义务教育质量监测初中美术试题.pdf VIP
- usl超声c扫描喷水检测系统在哈飞复合材料检测中的应用.doc VIP
- 化学品安全技术说明书SDS-乙炔.doc VIP
- GMP基础知识新员工培训.pptx VIP
- 《海洋资源与开发》测试题.docx VIP
- 广东医科大学2023-2024学年第1学期《高等数学(上)》期末考试试卷(A卷)附参考答案.pdf
- 医学细胞生物学复习重点.doc VIP
原创力文档


文档评论(0)