第二章 算法 程序的灵魂.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文档。上传文档
查看更多
第 2 章 算法 --- 程序的灵魂 ? 一个程序主要包括以下两方面的信息: (1) 对数据的描述 。在程序中要指定用到哪些 数据以及这些数据的类型和数据的组织形式 – 这就是数据结构 (data structure) (2) 对操作的描述 。即要求计算机进行操作的 步骤 – 也就是算法 (algorithm) ? 数据是操作的对象 ? 操作的目的是对数据进行加工处理,以得 到期望的结果 ? 著名计算机科学家沃思 (Nikiklaus Wirth) 提出一个公式: 算法 + 数据结构 = 程序 ? 一个程序除了算法和数据结构这主要要素 外,还应当采用结构化程序设计方法进行 程序设计,并且用某一种计算机语言表示 ? 算法 、 数据结构 、 程序设计方法 和 语言工 具 是一个程序设计人员应具备的知识 ? 算法是解决“做什么”和“怎么做”的问 题 ? 程序中的操作语句,是算法的体现 ? 不了解算法就谈不上程序设计 2.1 什么是算法 2.2 简单的算法举例 2.3 算法的特性 2.4 怎样表示一个算法 2.5 结构化程序设计方法 2.1 什么是算法 ? 广义地说,为解决一个问题而采取的方 法和步骤,就称为“ 算法 ” ? 对同一个问题,可以有不同的解题方法 和步骤 ? 为了有效地进行解题,不仅需要保证算 法正确,还要考虑算法的质量,选择合 适的算法 2.1 什么是算法 ? 计算机算法可分为两大类别: – 数值运算算法 – 非数值运算算法 ? 数值运算 的目的是求数值解 ? 非数值运算 包括的面十分广泛,最常见 的是用于事务管理领域 2.2 简单的算法举例 例 2.1 求 1 × 2 × 3 × 4 × 5 ? 可以用最原始的方法进行: – 步骤 1 :先求 1*2 ,得到结果 2 。 – 步骤 2 :将步骤 1 得到的乘积 2 再乘以 3 ,得到 结果 6 。 – 步骤 3 :将 6 再乘以 4 ,得 24 。 – 步骤 4 :将 24 再乘以 5 ,得 120 。这就是最后 的结果。 5 × … × 1000 太繁琐 2.2 简单的算法举例 ? 改进的算法: – 设变量 p 为被乘数 – 变量 i 为乘数 – 用循环算法求结果 2.2 简单的算法举例 ? S1 :使 p=1 ,或写成 1 ? p ? S2 :使 i=2 ,或写成 2 ? i ? S3 :使 p 与 i 相乘,乘积仍放在变量 p 中,可表示 为: p*i ? p ? S4 :使 i 的值加 1 ,即 i+1 ? i ? S5 :如果 i 不大于 5 ,返回重新执行 S3 ;否则, 算法结束 ? 最后得到 p 的值就是 5! 的值 若是 1000 ,求什么? 2.2 简单的算法举例 ? S1 :使 p=1 ,或写成 1 ? p ? S2 :使 i=2 ,或写成 2 ? i ? S3 :使 p 与 i 相乘,乘积仍放在变量 p 中,可表示 为: p*i ? p ? S4 :使 i 的值加 1 ,即 i+1 ? i ? S5 :如果 i 不大于 5 ,返回重新执行 S3 ;否则, 算法结束 ? 最后得到 p 的值就是 5! 的值 若求 1 × 3 × 5 × 7 × 9 × 11 3 3 2 2 11 11 相当于 i ≦ 11 2.3 算法的特性 ? 一个有效算法应该具有以下 特点 : (1) 有穷性 。一个算法应包含有限的操作 步骤,而不能是无限的。 (2) 确定性 。算法中的每一个步骤都应当 是确定的,而不应当是含糊的、模棱两 可的。 2.3 算法的特性 ? 一个有效算法应该具有以下 特点 : (3) 有零个或多个输入 。所谓输入是指在执 行算法时需要从外界取得必要的信息。 (4) 有一个或多个输出 。算法的目的是为了 求解,“解” 就是输出。 – 没有输出的算法是没有意义的。 (5) 有效性 。算法中的每一个步骤都应当能 有效地执行,并得到确定的结果。 2.3 算法的特性 ? 对于一般最终用户来说 : – 他们并不需要在处理每一个问题时都要自 己设计算法和编写程序 – 可以使用别人已设计好的现成算法和程序 – 只需根据已知算法的要求给予必要的输入, 就能得到输出的结果 输入 3 个数 黑箱子 3 个数中最大数 求 3 个数的 最大数 2.4 怎样表示一个算法 ? 常用的方法

文档评论(0)

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

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

1亿VIP精品文档

相关文档