第7章 算法.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文档。上传文档
查看更多
第7章 算法

第7章 算法 7.1 什么叫算法 7.2 算法的基本元素 7.3 算法的表示 *7.4 循环和递归 7.5 算法的效率 *7.6 计算的限制 7.1 什么叫算法 算法的定义 算法是描述求解问题方法的操作步骤集合,这样的操作步骤必须具有确定性、可终止性和可执行性。 确定性 算法的确定性是指算法中的每一个操作步骤必须是含义确定的。 可终止性 算法的可终止性是指算法应能在有限的操作步骤后结束。 可执行性 算法的可执行性是指算法中的操作步骤都是可以具体执行的。 以第1章给出的求解两个整数的最大公约数问题的算法为例,来讨论算法的确定性、可终止性和可执行性。 求解两个整数的最大公约数问题的方法如下: (1)令M为两个整数中的较大者,N为两个整数中的较小者; (2)用M除以N ,令R为M除以N的余数; (3)若R不等于0,则令M等于N,N等于R,返回步骤(2)继续;若R等于0,则N中的数值就是两个整数的最大公约数。 显然,上述操作步骤满足算法所要求的三点: 第一,上述的每一个操作步骤都是含义确定的; 第二,当两个整数 M 和 N 为有限数值时,上述方法可在有限的操作步骤后结束; 第三,上述的每一个操作步骤都是可以具体执行的。因此,上述操作步骤是一个算法。 下边的两个问题都没有算法: (1)构造一个包含所有正整数数值的表。 (2)把桌子上的水杯移开。 问题(1): 所有正整数数值是无穷的,任何操作步骤都不可能在有限步内完成,不满足可终止性。 问题(2): 要求把桌子上的水杯移开,这样的要求是计算机无法直接作到的,不满足可执行性。 如果对这个问题进行适当变换,让计算机执行某个操作步骤,计算机的操作步骤控制某个电路状态发生变化,电路状态的变化再让某个机械装置的状态发生变化,还是可以完成问题(2)的。 从算法所具有的确定性、可终止性和可执行性,我们可以得出如下结论: (1)由于算法中所有的操作步骤都具有确定性,而任何确定的、无二义的操作,计算机都可以按部就班的一步步执行,所以,我们很容易就可以把求解问题的算法转变为计算机可以执行的程序。 (2)计算机求解任何问题,必须在一个有限的时间段内得到处理结果,算法的可终止性保证了这一点。 (3)算法的可执行性保证了所有操作步骤都是在计算机上可以执行的。 从另一个角度来看,算法所处理的问题一定有零个或若干个输入数据,算法对一个问题的零个或若干个输入数据处理后,一定产生至少一个作为处理结果的输出数据。所以,从函数映射的角度看,算法是输入数据到输出数据的一种映射。 7.2 算法的基本元素 要解决算法的表示问题,第一步需要确定算法的基本元素。 算法的基本元素的两个含义 描述算法的基本单词。 每个基本单词的语义含义。 算法的五类基本元素 变量 赋值 分支 循环 过程 1 变量 基本概念 把算法中代表某个具体数值、并可以改变其数值的符号称作变量。 变量可以用一个或若干个字符符号来表示。 例如,在求解两个整数的最大公约数问题的算法中,符号M、N、R就是三个变量。 大多数算法描述的问题求解过程都是高度概括、适合于求解同类型的各种具体问题的。 例如,7.1节讨论的求解两个整数的最大公约数问题的算法, 该算法可以求解任意整数M和整数N的最大公约数。 在算法中,随着算法求解过程的进行,符号M和符号N所代表的数值还可以改变。 2 赋值 在算法中,赋值是实现给变量赋值、或对变量中的数值进行修改的一种操作。 用符号ASSIGN表示赋值,赋值语句格式为: ASSIGN name value 表示把数值value赋给变量名为name的变量。 ASSIGN name valueExpression 表示把一个表达式valueExpression的运算结果 (其值为一个确定的数值)赋给变量名为name的变量。 例如,若我们定义age为一个变量,我们就可以用如下赋值语句把数值20存放在变量age中: ASSIGN age 20 又如,当我们要表示某人的年龄要在原来年龄的基础上加一岁时,我们就可以用如下赋值语句实现: ASSIGN age age+1 3 分支 基本概念 在算法描述中,经常要根据不同的情况进行不同的处理。 例如:分段函数 当自变量x满足某种条件时,函数y=f(x)就取某个数学表达式; 当自变量x满足另一种条件时,函数y=f(x)就取另一个数学表达式。 算法中的这种结构称作分支结构。 分支语句的格式 设符号IF、THEN和ELSE是算法中表示分支结构的符号,分支语句的格式为: IF(condition) THEN activityOne ELSE activityTwo 当条件condition成立时,执行处理方法activityOne;否则(即条件condition不成立时),执行处理方法acti

文档评论(0)

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

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

1亿VIP精品文档

相关文档