第1章算法与程序.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

1.3算法的设计与评价1.3.1评价算法的标准1.3.2算法的环路复杂度1.3.3算法的时空效率1.3.4常见的算法设计方法第62页,共92页,星期日,2025年,2月5日常见的算法设计方法为了获得有效的算法,必须了解一些解题的基本思想和方法。对于许多问题,只要仔细分析了数据对象后,相应的处理方法就有了;对于有些问题则不然。然而,作为探寻问题求解思路的基本思想和方法,对于任何算法设计都是有用的。下面我们简要介绍一些常用的算法设计方法和技术:穷举法迭代法递推法递归法回溯法贪婪法分治法第63页,共92页,星期日,2025年,2月5日1.穷举法穷举法亦称作枚举法。它的基本思想是:首先根据求解问题的部分条件确定答案的大致范围,即列举出解的所有可能的情况;然后在此范围内对所有可能的情况逐一验证,若某个情况经过验证符合问题条件则为一个解,若全部情况验证后均不符合题目条件则问题无解,从而得出求解问题的完整解。例如要找出200到500之间的所有素数,我们只要对这个范围内的每一个数逐个用素数的定义去判断就行了。穷举法的特点是算法简单,但有时运算量大效率较低。在可以确定解的取值范围,但一时又找不到更好的算法时,就可以使用穷举法求解。第64页,共92页,星期日,2025年,2月5日2.迭代法迭代法的基本思想是,由一个量的原值求出它的新值,不断地再用新值替代原值求出它的下一个新值,直到得到满意的解。新值与原值之间存在一定的关系,这种关系可以用一个公式来表示,称之为迭代公式。迭代法主要用于那些很难用或无法用解析法求解的一类计算问题,如高次方程和超越方程等;使得复杂问题的求解过程,转化为相对较简单的迭代算式的重复执行过程,用数值方法求出问题的近似解。第65页,共92页,星期日,2025年,2月5日评价算法的标准评价一个算法优劣的五条标准:正确性可读性健壮性高效性简洁性一个好的算法是满足这五条标准要求的算法。第30页,共92页,星期日,2025年,2月5日评价算法的“正确性”标准所设计出来的算法要能够正确求解给定的问题。这就要求算法中的每一个步骤的描述是准确无歧义的,并且是可以执行的;要求算法能够满足问题要求,并在有限步骤内获得结果;否则就不具备正确性要求,更谈不上解决给定的实际问题了。算法要能经得起一切可能的输入数据的考验。第31页,共92页,星期日,2025年,2月5日评价算法的“正确性”标准(续)在将算法用程序语言表示为特定语言的程序后还必须注意:程序中不含有语法错误;对于一切合法的输入数据,程序能够产生满足要求的输出结果;对于一切非法的输入数据,程序能够得出满足规格说明的结果;对于精心选择的,甚至是带有刁难性的典型测试数据,程序都有满足要求的输出结果。第32页,共92页,星期日,2025年,2月5日评价算法的“可读性”标准表示出来的算法要能够方便地供人们阅读、理解和交流。算法的可读性好是保证正确性的前提,良好的可读性有利于人们理解算法思想,减少出错机会,便于检查和修改。可适当地增加注释,增强算法或程序的可读性。第33页,共92页,星期日,2025年,2月5日评价算法的“健壮性”标准算法对意外情况的反映能力要强。当输入数据非法、0作除数、负数开平方等,算法应能做出相应的处理,给出错误信息或终止算法执行,避免产生错误的或莫明其妙的输出结果。第34页,共92页,星期日,2025年,2月5日评价算法的“高效性”标准算法的执行效率要高。算法的效率可分为时间效率和空间效率。时间效率是通过该算法转化的程序在计算机上运行的时间耗费来确定,在算法设计与分析阶段用执行基本操作的次数(是问题规模的函数)相对于问题规模的渐近阶来表示。空间效率主要考虑除存储数据结构之外的辅助存储空间。一个高效算法是指执行算法耗费时间少,使用辅助存储空间小的算法。第35页,共92页,星期日,2025年,2月5日评价算法的“简洁性”标准所设计出来的算法要尽可能地简洁。对于同一问题所设计的不同算法,越简洁明了的越好。越简洁的算法可读性越好,越易于理解、编码和调试、测试,越受人们欢迎。第36页,共92页,星期日,2025年,2月5日评价算法的标准(续)在评价一个算法时,要对这五个方面综合考虑,不要片面追求某一指标。有些指标之间往往是相互制约的,如时间效率与空间效率,简洁性与高效性等等;要学会针对具体问题要求和软硬件实现环境进行综合平衡,设计出满足需要的好算法。第37页,共92页,星期日,2025年,2月5日1.3算法的设计与评价1.3.1评价算法的标准1.3.2算法的环路复杂度1

文档评论(0)

xiaozhuo2022 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档