网站大量收购独家精品文档,联系QQ:2885784924

1精简-计算机算法概述(第一章).pptxVIP

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

算法分析设计;教材: 算法设计与分析 王晓东编 清华大学出版社 算法设计与分析 吕国英主编 清华大学出版社 参考书: 计算机算法基础 余祥宣等编 华中科大出版社 计算机算法导引——设计与分析 卢开澄编 清华大学出版社 学时:3+1学时/周;与数据结构的区别: 考虑问题的角度:数据结构关心不同的数据结构在解题中的作用和效率;算法关心不同设计技术的适用性和效率。 考虑问题的高度:数据结构关心的是解具体问题,算法不仅如此,它提供一种解决问题的通用方法。; 广播操图解是广播操的算法; 菜谱是做菜的算法; 歌谱是一首歌曲的算法; 空调说明书是空调使用的算法等;例1:给出求1+2+3+4+5的一个算法。;第一步 取n=5;;例2:三个牧师和三个野人过河,只有一条能装下两人的船,在河的任一边或者船上,若野人人数大于牧师人数,那么牧师就会有被吃掉的危险。你能不能找出一种安全的渡河算法呢?;算法;20 世纪最伟大的科学技术发明---计算机;;现代科学研究的三大支柱;21世纪信息社会的两个主要特征: “计算机无处不在” “数学无处不在”;本课程为计算机科学与技术学科本科生的专业课。 ; 一般计算机对现实问题无能为力,需要人类对问题抽象化、形式化后才能去机械的执行。;绪 论;1. 什么是算法? 算法是指解决问题的一种方法或一个过程。 算法是若干指令的有穷序列。 ;2. 算法的五个重要特性 确定性、输入、输出、有穷性/有限性;2)输入 每个算法有0个或多个输入。;3. 程序与算法的区别 程序是算法用某种程序设计语言的具体实现。 程序可以不满足算法的性质(4)。 例如操作系统,是一个在无限循环中执行的程序,因而不是一个算法。 操作系统的各种任务可看成是单独的问题,每一个问题由操作系统中的一个子程序通过特定的算法来实现。该子程序得到输出结果后便终止。 ;4.问题求解;;计算gcd(m,n)的短除法 算法设计:计算机没有“宏观”能力来“看出”公约数,但通过“枚举尝试”(逐个尝试)就可以“试出”m,n有哪些是公约数,并将这些公约数“累乘”,就能得到最大公约数。;计算gcd(m,n)的连续整数检测算法;欧几里德算法;算法 = 控制结构 + 原操作 表示算法的语言主要有: 自然语言 流程图 盒图 PAD图 伪代码 计算机程序设计语言;1.自然语言 自然语言是人们日常所用的语言。 自然语言描述算法的缺点: ①自然语言的歧义性易导致算法执行的不确定性。 ②自然语言语句一般太长导致描述的算法太长。 ③当算法中循环和分支较多时就很难清晰表示。 ④不便翻译成程序设计语言理解的语言。; 2.流程图 ;3.盒图(NS流程图) (1)盒图具有以下优点: ① 层次感强、嵌套明确。 ② 支持自顶向下、逐步求精。 ③ 容易转换成高级语言源算法。; PAD图的主要优点: ①设计出来的算法必是结构化的。 ②PAD图描绘的算法结构清晰。 ③用PAD图表现的算法逻辑,易读、易懂、易记。 ④容易用软件工具自动将PAD图转换成高级语言源算法。 ⑤既可用于表示算法逻辑,也可用于描绘数据结构。 ⑥支持自顶向下、逐步求精。 缺点:由于是图形符号书写、编辑、录入不方便。;例:;; 5.伪代码 伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法的工具。它不用图形符号,因此书写方便,格式紧凑,易于理解,便于用计算机程序设计语言实现。 如:类JAVA/类C/类C++;6.程序设计语言的缺点: ① 算法的基本逻辑流程难于遵循。与自然语言一样,程序设计语言也是基于串行的,当算法的逻辑流程较为复杂时这个问题就变得更加严重。 ② 特定程序设计语言编写的算法限制了与他人的交流,不利于问题的解决。 ③ 要花费大量的时间去熟悉和掌握某种特定的程序设计语言。 ④ 要求描述计算步骤的细节而忽视算法的本质。 ⑤ 需要考虑语法细节,而扰乱算法设计的思路。 ⑥ 考虑到程序设计语言不断更新,不适于描述算法。 算法设计一般不用程序设计语言直接描述。;自然语言 示例:求解斐波那契数 ; 求解斐波那契数;求斐波那契数列的前n个数;求斐波那契数列的前n个数;流程图 示例:求解斐波那契数 ;伪代码 示例:求解斐波那契数 ;算法分析;1. 重要的假设和约定 1)计算机模型的假设

文档评论(0)

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

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

1亿VIP精品文档

相关文档