Ch2 算法.pptVIP

  1. 1、本文档共32页,可阅读全部内容。
  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文档。上传文档
查看更多
第2章 程序的灵魂--算法 西南大学 计算机与信息科学学院 本章主要内容 2.1 算法的概念 2.2 简单算法举例 2.3 算法的特性 2.4 怎样表示一个算法 2.5 结构化程序设计方法 程序设计 用计算机解决一个实际应用问题时的整个处理过程称为程序设计 什么是程序? 著名的计算机科学家沃思提出: 数据结构+算法=程序 算法的概念 算法补充 将学生百分成绩按分数段分级的程序(假设学生成绩分布是均匀的)。 假若学生成绩分布不是均匀的,考虑到算法性能,需改进如下: 算法的特性 a)有穷性。一个算法应包含有限个操作步骤,而不能是无限的。 b)确定性。算法的每一步都应当是明确无误的,不能含义模糊,使执行者无所适从。 c)有零个或多个输入 d)有一个或多个输出 e)有效性。算法中的每一步都应该能有效的执行,执行算法最后应该能得到确定的结果。 怎样表示一个算法 算法的描述方式 用自然语言描述算法 用流程图描述算法 用N-S结构图描述算法 用伪代码描述算法 用计算机语言描述算法 用自然语言描述算法 第一步:输入x和y的值 第二步:比较x和y的值,如果x大于y,则输出x的值,否则输出y的值。 用流程图描述算法 流程图是用一些图框表示各种操作的流程过程。它有着直观形象、易于理解的特点。美国国家标准化协会ANSI(American National Standard Institute)规定了一些常用的流程图符号。 用流程图描述算法 传统流程图的弊端 传统流程图的弊端 传统的流程图用流程线指出各框的执行顺序,对流程线的使用没有严格限制。 这种算法难以阅读,也难以修改,从而使算法的可靠性和可维护性难以保证。 三种基本结构 1966年,Bohra和Jacopini提出了以下三种基本结构,作为表示一个良好算法的基本单元。 顺序结构 选择结构 循环结构 当型(While型)循环结构 它的功能是当给定的条件p1成立时,执行A框操作,执行完A后,再判断条件p1是否成立执行A ,如果仍然成立,再执行A框,如此反复框,直到某一次p1条件不成立为止,此时不执行A框,而从b点脱离循环结构。 直到型(Until型)循环 它的功能是先执行A框,然后判断给定的p2条件是否成立,如果p2条件不成立,则再执行A,然后再对p2条件作判断,如果p2条件仍然不成立,又执行A……如此反复执行A,直到给定的p2条件成立为止,此时不再执行A,从b点脱离本循环结构。 当型循环、直到型循环的应用例子 三种基本结构的特点 以上三种基本结构,有以下共同特点: (1) 只有一个入口。 (2) 只有一个出口。 (3) 结构内的每一部分都有机会被执行到。 (4) 结构内不存在“死循环”(无终止的循环)。 扩展的结构 用N-S流程图描述算法 Nassi和Shneiderman提出N-S图,可以强化结构化程序设计,迫使程序设计人员用标准的基本结构进行程序设计。 它完全去掉了带箭头的流程图,全部算法写在一个矩形框内.这种表示法表示简单. 用N-S结构图描述算法 用N-S结构图描述的算法 利用N-S图进行详细设计具有以下优点: (1)? 功能域明确。 (2) 不可能任意控制转移。 (3)??很容易确定全局和局部数据的作用域。 (4) 很容易表现嵌套关系,也可以表示模块的层次结构 用伪代码描述算法 用介于自然语言和计算机语言之间的文字和符号来描述算法. 用伪代码描述比较两个数的大小,输出大的一个数的算法: 用计算机语言描述算法 要完成一件工作,包括设计算法和实现算法两个部分。设计算法的目的是为了实现算法。因此,不仅要考虑如何设计一个算法,也要考虑如何实现一个算法。 作业:用C写出描述比较两个数的大小,输出大的一个数的算法。 结构化程序设计方法 程序的三种基本结构 顺序结构程序:按照书写顺序依次执行语句 选择结构程序:按照条件判断选择执行语句 循环结构程序:通过条件控制循环执行语句 结构化程序设计的基本原则: 如果一个程序仅包含这三种基本结构(由这些基本结构顺序组成),则称为结构化程序。 结构化程序设计的基本原则: 采用自顶向下、逐步细化的方法进行设计; 采用模块化原则和方法进行设计。即将大型任务从上向下划分为多个功能模块,每个模块又可以划分为若干子模块,然后分别进行模块程序的编写; 每个模块都是用结构化程序实现,即都只能由三种基本结构组成,并通过计算机语言的结构化语句实现。 实例研究1 1.怎样制定算法 某个班有10个学生,已知他们参加某次考试的成绩,求全班同学在这次考试中的平均成绩。 实例分析1 实例1 #include stdio.h /*用计数器控制的循环求全班平均成绩--*/ void main()

您可能关注的文档

文档评论(0)

精华文档888 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档