第2章算法.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章算法ppt整理

2.1 算法的概念 2.2 简单算法举例 2.3 算法的特性 2.4 怎样表示一个算法 习题 2.1 算 法 的 概 念 2.2 简单算法举例 可以设两个变量,一个变量代表被乘数,一个变量代表乘数。不另设变量存放乘积结果,而直接将每一步骤的乘积放在被乘数变量中。今设p为被乘数,i为乘数。用循环算法来求结果。可以将算法改写如下: 如果题目改为求1×3×5×7×9×11。 例2.2 有50个学生,要求将他们之中成绩在80分以上者打印出来。用n表示学生学号,n1代表第一个学生学号,ni代表第i个学生学号。用g代表学生成绩,gi代表第i个学生成绩,算法可表示如下。 例2.3 判定2000—2500年中的每一年是否闰年,将结果输出。 设y 为被检测的年份。可采取以下步骤: S1:2000=y S2: y不能被4整除,则输出y “不是闰年”。然后转到S6 S3:若y能被4整除,不能被100整除,则输出y “是闰年”。然后转到S6 S4:若y能被100整除,又能被400整除,输出y“是闰年”;否则输出“不是闰年”。 然后转到S6 S5:输出y “不是闰年” S6:y+1=y S7:当y≤2500时,转S2继续执行,如y>2500,算法停止。 S1:1=sign S2:1=sum S3:2=deno S4:(-1)×sign=sign S5:sign×(1/deno)=term S6:sum+term=sum S7:deno+1=deno S8:若deno≤100返回S4;否则算法结束。 2.3 算法的特性 一个算法应该具有以下特点: 3.有零个或多个输入 所谓输入是指在执行算法时需要从外界取得必要的信息。一个算法也可以没有输入。 2.4 怎样表示一个算法 为了表示一个算法,可以用不同的方法。常用的有自然语言、传统流程图、结构化流程图、伪代码、PAD图等。 2.4.2 用流程图表示算法 流程图是用一些图框表示各种操作。用图形表示算法,直观形象,易于理解。美国国家标准化协会ANSI(American National Standard Institute)规定了一些常用的流程图符号. 例2.6 将例2.1求5!的算法用流程图表示: 2.4.3 三种基本结构和改进的流程图 1. 传统流程图的弊端 传统的流程图用流程线指出各框的执行顺序,对流程线的使用没有严格限制。因此,使用者可以不受限制地使流程随意地转来转去,使流程图变得毫无规律。这种情况如图2.13所示。 这种算法难以阅读,也难以修改,从而使算法的可靠性和可维护性难以保证。如果我们写出的算法能限制流程的无规律任意转向,阅读起来就很方便。 2. 三种基本结构 1966年,Bohra和Jacopini提出了以下三种基本结构,作为表示一个良好算法的基本单元。 (3) 循环结构,它又称重复结构。有两类循环结构: 以上三种基本结构,有以下共同特点: (1) 顺序结构: A和B两个框组成一个顺序结构。 (2) 选择结构:当p条件成立时执行A操作,p不成立则执行B操作。 (3) 循环结构: 例2.11 将例2.1的求5!算法用N-S图表示。 例2.12 将50名学生中成绩高于80分的学号和成绩打印出来。 2.4.5 用伪代码表示算法 用传统的流程图和N-S图表示算法,直观易懂,但画起来比较费事。因此,流程图适宜表示一 个算法,但在设计算法过程中使用不是很理想。为了设计算法时方便,常用一种称为伪代码(pseudo code)的工具。 伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法。它如同一篇文章,自上而下地写下来。每一行(或几行)表示一个基本操作。它不用图形符号,因此书写方便 、格式紧凑,也比较好懂,便于向计算机语言算法(即程序)过渡。 例如, “打印x的绝对值”的算法可以用伪代码表示如下: IF x is positive THEN print x ELSE print –x 它像一个英语句子一样好懂,在国外用得比较普遍。也可以用汉字伪代码,如: 若 x为正 打印 x 否则 打印 –x 也可以中英文混用,如: IF x 为正 print x ELSE print –x 例2.16 求5!。用伪代码表示的算法如下: 开始 置t的初值为1 置i的初值为2 当i=5,执行下面操作: 使t=t×i 使i=i+1 (循环体到此结束) 打印t的值 结束 也可以写成以下形式: 例2.17 打印出50个学生中成绩高于80分者的学号和成绩。 用伪代码表示算法如下: BEGIN(算法开始) 1=i while i=50 {input ni and gi i+1=i}

文档评论(0)

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

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

1亿VIP精品文档

相关文档