第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 程序的灵魂-算法

第2章 程序的灵魂-算法 一个程序应包括对数据的描述和对数据处理的描述。 算法是解决一个具体问题的意义明确的步骤的集合。概括地说,算法是指解题方案的准确而完整的描述。从程序来说,也可以说算法是一个有限条指令的集合,这些指令确定了解决某一特定类型问题的运算序列。 2.2 算法的特性 1.有穷性:一个算法应当包含有限的步骤,而不能是无限的步骤;同时一个算法应当在执行一定数量的步骤后,算法结束,不能死循环。 2.3 算法的描述 为了表示一个算法,可以用不同的方法。常用的算法表示方法: 自然语言,传统流程图,结构化流程图(N-S流程图),伪代码、计算机语言等。 例:求5! 传统流程图采用流程线指出各框的执行顺序,对流程线的使用没有严格限制。因此,使用者可以不受限制地使流程转来转去,使流程图变得毫无规律。人们对这种流程图进行改进,规定几种基本的结构,然后由这些基本结构按一定规律组成算法结构,整个算法结构是由上而下地将各个基本结构顺序排列起来。这样可以在一定程度上,提高算法的质量。 三种基本结构 1.顺序结构:按指令的顺序依次执行 2.判断选择结构:根据判别条件有选择地改变执行流程 3.循环结构:有条件的重复地执行某个程序块 三种基本结构,有以下共同点: l?只有一个入口:不得从结构外随意转入结构中某点。 l?只有一个出口:不得从结构内某个位置随意转出(跳出)。 l?结构中的每一部分都有机会被执行到。(没有“死语句”) l?结构内不存在“死循环”(无终止的循环) 已经证明:由三种基本结构顺序组成的算法结构,可以解决任何复杂问题。由基本结构组成的算法属于“结构化”算法。 用N-S流程图表示算法 基本结构的顺序组合可以表示任何复杂的算法结构 全部算法写在一个矩形框内,完全去掉了带箭头的流程线。这种流程图称为N-S结构化流程图(盒图)。 N-S流程图适于结构化程序设计 顺序结构程序设计 判别选择结构程序设计 循环结构程序设计 当型循环:当条件p成立时,反复执行循环体中指令,直到p条件不成立为止。当型循环先判断,再决定是否执行循环体,所以在条件p一次都不满足时,循环体可能一次都不执行 用伪代码表示算法 用传统流程图、N-S图表示算法,直观易懂,但绘制比较麻烦,流程图适合表示算法,但在设计算法过程中使用不是很理想。 伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法。伪代码不用图形符号,书写方便,格式紧凑,便于向计算机语言算法过渡 2.4 结构化程序设计方法 结构化程序设计强调设计风格和程序结构的规范化,提倡清晰的结构。 * * 对数据的描述,即数据结构 对数据处理的描述,即计算机算法,算法是为解决一个问题而采取的方法和步骤,是程序的灵魂。 程序=算法+数据结构+程序设计方法+语言工具和环境 2.1 算法的概念 对于同一个问题可以有不同的解题方法和步骤,也就是有不同的算法。算法有优劣,一般而言,应当选择简单的、运算步骤少的,既运算快、内存开销小的算法(算法的时空效率)。 2.确定性:算法中的每一个步骤都应当是确定的, 而 不是含糊的、摸棱两可的。也就是说不应产生歧义。 3.有0个或多个输入 所谓输入是指算法执行时从外界获取必要信息。 4.有1个或多个输出 算法必须有结果,没有结果的算法没有意义。 5.有效性 算法的每个步骤都应当能有效执行,并能得到确 定的结果。 流程图:用一些约定的几何图形来描述算法。用某种图框表示某种操作,用箭头表示算法流程 流程图(的符号及意义)美国标准化协会ANSI规定了一些常用的流程图符号: 起始框 输入输出框 判断选择框 处理框 流程线 连接点 …… 注释框 t=1 i=2 t=t*i i=i+1 i5 结束 N Y 开始 执行a块 执行b块 依次顺序执行程序语句 先执行a操作,再执行b操作 满足条件否 满足 不满足 执行a块 执行b块 当条件成立,执行a操作,当条件不成立,执行b操作。a,b操作允许空操作,即什么都不做。注意选择结构是一个整体,代表一个基本结构。 循环又分“当型循环”和“直到型循环” 当条件p满足时 执行循环中指令 直到条件p满足为止 执行循环中的指令 直到型循环:当条件p不成立时,反复执行循环体中的指令,直到p条件成立为止。直到型循环先执行循环体,然后再判断条件p,所以循环体至少执行一次。 用计算机语言表示算法 用某种程序设计语言编写的程序本质上也是问题处理方案的描述,并且是最终的描述。 程序是程序设计的最终产品,需要经过每一步的细致加工才能得到,不提倡一开始就编写程序,特别是对于大型的程

文档评论(0)

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

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

1亿VIP精品文档

相关文档