[第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 章 算 法 一个程序应该包括以下两方面内容: (1)对数据的描述 在程序中要指定数据的类型和数据的组织形式,即数据结构(data structure)。 (2)对操作的描述 对操作的描述即操作步骤,也就是算法(Algorithm)。 数据是操作的对象,操作的目的就是对数据进行加工处理,以期得到期望的结果。 作为一个程序设计人员,必须认真考虑数据结构和操作步骤(即算法)。 著名计算机科学家沃思(Nikiklaus Wirth)曾提出一个公式: 数据结构+算法=程序 实际上,一个程序除了以上两个主要因素之外,还应当考虑程序设计的方法以及用何种语言来描述。因此,程序还可以这样表示: 程序=算法+数据结构+程序设计方法+语言工具和环境 在这四个方面中,算法是灵魂,数据结构是要处理的对象,语言是工具,编程需要采用合适的方法。 2.1 算法的概念 2.1.1 基本概念 2.1.2 简单算法举例 2.1.1 基本概念 算法是指为解决某个具体问题而采取的方法和步骤。 对于不同的问题有不同的算法,而对于同一个问题,也可以有不同的算法。而且,这些算法有优劣之分。有的算法只需很少的步骤,而有些算法则需要较多的步骤。一般来说,应采用简单的和运算步骤少的算法。因此,为了有效地进行解题,不仅需要保证算法正确,还要考虑算法的质量,选择好的算法。 对于计算机而言,我们考虑的当然只限于计算机算法,即计算机能执行的算法。如1+2+3+4+5,或者是将50名学生的成绩打印出来,并且统计及格学生人数。 计算机算法分为两大类:数值运算算法和非数值运算算法。 数值运算算法,如求方程的根等。其目的是求数值解,它们属于数值运算范围。非数值运算的算法,如图书检索、人事管理、车辆调度管理等。 由于数值运算有现成的模型,可以运用数值分析方法,因此,对数值运算的算法的研究比较深入,算法比较成熟。人们常常把这些算法汇编成册(写成程序形式),供用户调用。而非数值运算的种类繁多,要求各异,难以规范化,因此,只有一些典型的非数值运算算法(比如排序算法中有:冒泡法、选择法等等;查找算法中有二分法等等)比较成熟。其他的非数值运算问题,都需要参考已有的类似算法,针对具体问题重新设计。 2.1.2 简单算法举例 例2.1 求1×2×3×4×5的结果。 S1:先求1×2,得到结果2。 S2:将步骤1的乘积2再乘以3,得到结果6。 S3:将结果6再乘以4,得24。 S4:将24再乘以5,得120。这就是最后的结果。 如果需要求1000个数的乘积,则需要写999个步骤,显然不可取。 通过分析,可知,步骤2要用步骤1的结果,步骤3要用步骤2的结果,也就是说后一步要用前一步的计算结果。这样可以设两个变量,p为被乘数,i为乘数,直接将每一步骤的积放在被乘数变量p中。用循环算法求结果。 算法如下: S1:先使p=1 S2:使i=2 S3:使p×i,成绩仍存放在变量p中,可表示为p×i → p S4:使i的值加1,即i+1 → i S5:如果i≤5,返回重新执行步骤S3以及其后的S4和S5;否则,算法结束,最后得到p的值就是最后的结果。 如果题目改为1×5×10×15×20×25。则算法如下: S1:1 → p S2:5 → i S3:p×i → p S4:i+5 → i S5:如果i≤25,返回S3,否则,算法结束。 例2.2 求一个班学生的平均成绩,设A等(85分)15人,B等(70分)24人,C等(60分)8人,D等(50分)3人。 设SUM为总分数,AVER为人均成绩。将成绩为A等、B等、C等、D等的学生人数存到变量A、B、C、D中。 S1:15 → A S2:24 → B S3:8 → C S4:3 → D S5:85×A+70×B+60×C+50×D → SUM S6:SUM÷(A+B+C+D) → AVER 例2.3 有50个学生,要求将他们之中成绩在60分以上者打印出来。用n表示学生学号,n1代表第一个学生的学号,ni代表第i个学生的学号。用g代表学生成绩,gi代表第i个学生的成绩。算法可表示如下: S1:1 → i S2:如果gi≥60,则打印ni和gi,否则不打印。 S3:i+1 → i S4:如果i≤50,返回S2,否则,算法结束。 2.2 算法的特性 算法实际上是一种抽象的解题方法,它具有动态性。因此,算法的行为非常重要。作为一个算法,应具有以下特性。 1、有效性 算法的有效性包括两个方面:一是算法中的每个步骤必须能够实现。例如,在算法中,不允许分母为零的情况,在实数范围内不能求一个负数的平方根等。二是

文档评论(0)

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

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

1亿VIP精品文档

相关文档