算法设计与分析.docxVIP

  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章绪论 算法理论研究的是算法的设计技术和算法的分析技术,前者是指面对 一个问题,如何设计一个有效的算法,后者则是对已设计的算法,如何评 价或者判断其优劣。二者是相互依存的,设计出的算法需要检验和评价, 对算法的分析反过来又将改进算法的设计。 算法的基本概念 算法的概念在计算机科学领域几乎无处不在,在各种计算机软件系统 的实现中,算法设计往往处于核心地位。例如,操作系统是现代计算机系 统中不可缺少的系统软件,操作系统的各个任务都是一个单独的问题,每 个问题由操作系统中的一个子程序根据特定的算法来实现。用什么方法来 设计算法,如何判定一个算法的优劣,所设计的算法需要占用多少时间资 源和空间资源,在实现一个软件系统时,都是必须予以解决的重要问题。 为什么要学习算法 用计算机求解任何问题都离不开程序设计,而程序设计的核心是算法 设计。普通来说,对程序设计的研究可以分为四个层次:算法、方法学、 语言和工具,其中算法研究位于最高层次。算法对程序设计的指导可以延 续几年甚至几十年,它不依赖于方法学、语言和工具的发展与变化。例如, 用于数据存储和检索的Hah算法产生于20世纪50年代,用于排序的快速 排序算法发明于20世纪60年代,但他们至今仍被人们广为使用,可是程 序设计方法已经从结构化发展到面向对象,程序设计语言也变化了几代, 至于编程工具很难维持三年不变。所以,对于从事计算机专业的人士来说, 学习算法是非常必要的。 ⑴样本的规模。一种可借鉴的方法是先从一个较小的样本规模开始, 如果有必要再加大样本规模。 ⑵样本的范围。普通来说,输入样本的范围不要小得没故意义,也不 要过分大。止匕外,还要设计一个能在所选择的样本范围内产生输入数据的 程序。 ⑶样本的模式。输入样本可以符合一定的模式,也可随机产生。根据 一个模式改变输入样本的好处是可以分析这种改变带来的影响,例如,如 果一个样本的规模每次都会翻倍,可以通过计算T(2n)/T(n),考察该比 率揭示的算法性能是否符合一个基本的效率类型。 如果对于相同规模的不同输入实例,实验数据和实验结果会有很大不 同,则需要考虑是否包括同样规模的多个不同输入实例。例如排序算法, 对于同样数据集合的不同初始罗列,算法的时间性能会有很大差别。 17 .对输入样本运行算法对应的程序,记录得到的实验数据 作为实验结果的数据需要记录下来,通常用表格或者散点图记录实验 数据,散点图就是在笛卡儿坐标系中用点将数据标出。以表格呈现数据的 优点是直观、清晰,可以方便地对数据进行计算,以散点图呈现数据的优 点是可以确定算法的效率类型。例如表1.1是对某算法采用计数法得到的 实验数据,图L7是一个典型的散点图。 表1. 1表格法记录实验数据 规模次数100011,966200024, 303执行次数或者时间 300039, 992400053, 010500067, 272600078, 692700091,2748000113, 06390 00129, 799 问题规模n图1. 7典型的散点图 .分析得到的实验数据 根据实验得到的数据,结合实验目的,对实验结果进行分析,并根据 实验结果不断调整实验的输入样本,经过对照分析,得出具体算法效率的 有关结论。 算法的数学分析和实验分析的基本区别是:数学分析不依赖于特定输 入,缺点是合用性不强,特别对算法做平均性能分析时。实验分析能够适 用于任何算法,但缺点是其结论依赖于实验中使用的特定输入实例和特定 的计算机系统。 实际应用中,可以采用数学分析和后验分析相结合的方式来分析算法。 此时,描述算法效率的函数是在理论上确定的,而其中一些必要的参数则 是针对特定计算机或者程序根据实验数据得来。 .3实验项目一一求最大公约数 1.实验题目 求两个自然数m和n的最大公约数。2.实验目的 ⑴复习数据结构课程的相关知识,实现课程间的平滑过渡; 18 ⑵掌握并应用算法的数学分析和后验分析方法;⑶理解这样一个观点: 不同的算法能够解决相同的问题,这些算法的解题思路不同,复杂程度不 同,解题效率也不同。3.实验要求 ⑴至少设计出三个版本的求最大公约数算法; ⑵对所设计的算法采用大0符号进行时间复杂性分析; ⑶上机实现算法,并用计数法和计时法分别测算算法的运行时间;⑷ 通过分析对照,得出自己的结论。4.实现提示 设m和n是两个自然数,m和n的最大公约数记为gcd(m, n),是能够 同时被m和n整除的最大整数。下面给出求最大公约数三个版本的算法思 想,注意算法中没有对输入数据进行校验。 算法1.4连续整数检测1. t二min{m, n} ;2. m除以t,如果余数为 0,则执行步骤3,否则,执行第4步;3. n除以t,如果余数为0,返回 t的值作为结果,否则,执行第4步;4. t=t-

文档评论(0)

贤阅论文信息咨询 + 关注
官方认证
服务提供商

在线教育信息咨询,在线互联网信息咨询,在线期刊论文指导

认证主体成都贤阅网络信息科技有限公司
IP属地四川
统一社会信用代码/组织机构代码
91510104MA68KRKR65

1亿VIP精品文档

相关文档