国防《程序设计基础》教学资料包 教学课件 第3章.pptVIP

  • 0
  • 0
  • 约4.9千字
  • 约 26页
  • 2021-12-07 发布于湖北
  • 举报

国防《程序设计基础》教学资料包 教学课件 第3章.ppt

算法的概念 3.1 3.2 算法的特征 3.3 算法的描述 算法设计中常用的基本方法 3.4 3.5 算法的设计要求 3.6 算法的评价 3.1 算法的概念 算法就是为解决一个特定问题而采取的方法和步骤。 返回 非数值运算算法 数值运算算法 1 2 1 2 计算机算法的分类 3.2 算法的特征 一个算法必须具有以下特性: (1)有穷性 (2)确定性 (5)可行性 (4)有一个或 多个输出 (3)有零个或多个输入 返回 3.3.1 用自然语言描述算法 自然语言就是人们日常生活中使用的语言,用自然语言来描述算法具有很明显的优点,那就是通俗易懂,便于阅读。 缺点:自然语言固有的不严密性也会使得要简单清晰地描述算法变得很困难,并且易产生歧义。 流程图是一种传统的算法表示法,它利用几何图形的框来代表各种不同性质的操作,用流程线来指示算法的执行方向。用流程图描述算法的方式比较直观形象,易于理解。 3.3 算法的描述 3.3.2 用传统流程图描述算法 缺点:在设计比较复杂的算法时,画流程图是十分花费时间的,也容易在流程控制上出错。 返回 3.3 算法的描述 3.3.2 用传统流程图描述算法 流程图符号 3.3.3 用 N-S 流程图描述算法 三种基本结构,及其 N-S 流程图的表示形式: 3.3 算法的描述 顺 序 结 构 选 择 结 构 循 环 结 构 3.3.4 用伪代码描述算法 伪代码是介于自然语言与编程语言之间的一种算法描述语言,使用伪代码来描述算法可以容易地以任何一种编程语言实现。 3.3 算法的描述 优点:结构清晰、代码简单、书写方便、可读性好,既类似于自然语言,又便于向计算机语言算法(即程序)过渡。 3.3.5 用计算机语言描述算法 用计算机语言来描述的算法,可以说是算法描述的终极形式。当然,用计算机语言表示算法必须严格遵循所采用的语言的语法规则。 3.4.1 迭代法 3.4 算法设计中常用的基本方法 迭代法也称辗转法,是一种不断用变量的旧值递推新值的过程。迭代法又分为精确迭代和近似迭代两种。欧几里德算法属于精确迭代法,牛顿迭代法属于近似迭代法。 用迭代算法解决一个具体问题时,需要考虑以下三个方面: 迭代变量的确立。在可以用迭代算法解决的问题中,至少存在一个直接或间接地不断由旧值递推出新值的变量,这个变量就是迭代变量。 迭代关系式的建立。所谓迭代关系式,指如何从变量的前一个值推出其下一个值的公式(或关系)。 迭代过程的控制。不能让迭代过程无休止地重复执行下去。迭代过程的控制通常可分为两种情况:一种是所需的迭代次数是个确定的值,可以计算出来;另一种是所需的迭代次数无法确定。对于前一种情况,可以构建一个固定次数的循环来实现对迭代过程的控制;对于后一种情况,需要进一步分析出用来结束迭代过程的条件 返回 3.4.1 迭代法 3.4 算法设计中常用的基本方法 最经典的迭代算法是欧几里德算法,也叫辗转相除法,用于计算两个整数a,b的最大公约数(假定ab),其计算原理可表示为: gcd(a,b)=gcd(b,a mod b),即(a,b)和(b,a mod b)的公约数是一样的。 欧几里德算法就是一个反复迭代执行,直到余数为0才停止的算法,这实际是一个循环结构。 1.欧几里德算法 迭代法也是用于求方程或方程组近似根的一种常用的算法设计方法,牛顿迭代法就是其中的一种。设方程为 f(x)=0,用某种数学方法导出等价的形式 x = g(x)。 2.牛顿迭代法 3.4.1 迭代法 使用牛顿迭代法求根时应注意以下两种可能发生的情况: 3.4 算法设计中常用的基本方法 方程虽然有解,但迭代公式选择不当或迭代的初始近似根选择不合理,也会导致迭代失败。 2 如果方程无解,算法求出的近似根序列就不会收敛,迭代过程会变成死循环,因此在使用迭代算法前应先考察方程是否有解,并在程序中对迭代的次数给予限制。 1 穷举法也叫列举法。其基本思想是根据提出的问题,列举所有可能的情况,并用问题中给定的条件检验哪些是需要的,哪些是不需要的。因此,列举法常用于解决“是否存在”或“有多少种可能”等类型的问题,例如求解不定方程的问题。这种方法的好处是最大限度考虑了各种情况,从而为求出最

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档