第5章-算法和复杂性.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文档。上传文档
查看更多
* 计算机科学导论 第5章 算法与复杂性 学习目标 了解算法的概念和特性、算法的描述工具、评价、算法设计策略、分布式算法、可计算性理论基础、NP问题、自动机理论、加密算法、几何算法、并行算法等。 掌握几种经典算法的基本思想。 一个好的算法是程序设计的关键,本章首先介绍算法的基本知识、常用算法及算法评价的基础知识,然后介绍几种常用的算法,为今后进一步学习算法及其复杂性打好基础。 第5章 算法与复杂性 5.1 算法分析基础 5.1.1 算法的概念 算法(Algorithm)是一组明确的、可以执行步骤的有序集合,在有限的时间内终止并产生结果。 算法和数据结构之间存在密切联系,数据结构是算法的基础,数据结构不同,通常采用的算法也不同。 5.1.2 算法的特性 算法反映了求解问题的方法和步骤,不同的问题需要用不同的算法来解决,同一个问题也可能有多种不同的算法。一个算法必须具有以下特性: 1. 有穷性(可终止性) 一个算法必须在有限的操作步骤内以及合理的时间内执行完成。 2. 确定性 算法中的每一个操作步骤都必须有明确的含义,不允许存在二义性。 3. 有效性(可行性) 包括以下两个方面: ① 算法中每一个步骤必须能够实现,如在算法中不 允许出现分母为0的情况。 ② 算法执行的结果要能够达到预期的目的,实现预 定的功能。 4. 输入数据与输出数据的要求 一个算法应该有0个或多个输入数据、有1个或多个输出数据。 5.1.2 算法的特性 常用算法 1、递归算法 2、迭代算法 3、穷举算法 4、贪婪算法 5、回溯算法 …… 5.3 算法描述工具 算法是要通过程序才能加以实现的。常用的算法描述方式 : 1. 自然语言 自然语言就是人们日常使用的语言,可以是中文、英文等。 例如,求3个数中最大者的问题,可以描述为: ① 比较前两个数。 ② 将①中较大的数与第三个数进行比较。 ③ 步骤②中较大的数即为所求。 2. (盒式)流程图 流程图是用规定的一组图形符号、流程线和文字说明来描述算法的一种表示方法。 (1) 顺序结构。程序执行完A语句后接着执行B语句,如图所示。 (2) 选择结构。当条件P成立时,则执行A语句,否则执行B语句,如图所示。 5.3 算法描述工具 P 成立 A B 不成立 P 成立 A B 例:求三个数a、b、c中的最大者 输入a、b、c的值 T ab F ac bc T F T F x=a x=c x=b x=c 输出x的值 (3) 当型循环结构。当条件P成立时,则循环执行A语句,如图所示 (4) 直到型循环结构。循环执行A语句,直到条件P1成立为止,如图所示。 起止框 判断框 处理框 输入/输出框 注释框 流向线 连接点 3.(程序)流程图 基本符号 5.3 算法描述工具 顺序结构 选择结构 当型(While型)循环结构 直到型(Until型)循环 例:求三个数a、b、c中的最大者 ab bc x=b x=c ac x=a x=c T F T T F F 输出x的值 输入a、b、c的值 开始 结束 4. 伪代码 伪代码是用一种介于自然语言与计算机语言之间的文字和符号来描述算法,它比计算机语言形式灵活、格式紧凑,没有严格的语法。 例如,求两个数的较大者,用伪代码描述算法如下: Find the bigger Input: two numbers:a,b 1. if (a is greater than or equal to b) then 1.1 return a else 1.2 return b end if end 5.3 算法描述工具 5.4 算法的评价 对于一个算法的评价,通常要从正确性、可理解性、健壮性、时间复杂度(Time Complexity)及空间复杂度(Space Complexity)等多个方面加以衡量。 1.算法的时间复杂度 时间复杂度是度量时间的复杂性,即算法的时间效率的指标。 2.算法的空间复杂度 算法的空间复杂

文档评论(0)

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

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

1亿VIP精品文档

相关文档