程序设计基础第3章.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《程序设计基础第3章.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 基础
- 资源描述:
-
1、算法的概念算法的概念3.13.2算法的特征算法的特征3.3算法的描述算法的描述算法设计中常用的算法设计中常用的基本方法基本方法3.43.5算法的设计要求算法的设计要求3.6算法的评价算法的评价 算法就是为解决一个特定问题而采取的方法和步骤。非数值运算算非数值运算算法法数值运算算数值运算算法法1212计算机算法的分类计算机算法的分类 一个算法必须具有以下特性:(1 1)有穷性)有穷性(2 2)确定性)确定性(5 5)可行性)可行性(4 4)有一个或)有一个或 多个输出多个输出(3 3)有零个或多个输入)有零个或多个输入3 3.3 3.1 1 用自然语言描述算法用自然语言描述算法 自然语言就是人们
2、日常生活中使用的语言,用自然语言来描述算法具有很明显的优点,那就是通俗易懂,便于阅读。缺点:自然语言固有的不严密性也会使得要简单清晰地描述算法变得很困难,并且易产生歧义。流程图是一种传统的算法表示法,它利用几何图形的框来代表各种不同性质的操作,用流程线来指示算法的执行方向。用流程图描述算法的方式比较直观形象,易于理解。3 3.3 3.2 2 用传统流程图描述算法用传统流程图描述算法 缺点:在设计比较复杂的算法时,画流程图是十分花费时间的,也容易在流程控制上出错。3 3.3 3.2 2 用传统流程图描述算法用传统流程图描述算法 流程图符号流程图符号3 3.3 3.3 3 用用 N-S 流程图描述
3、算法流程图描述算法 三种基本结构,及其 N-S 流程图的表示形式:顺序结构选择结构循环结构3 3.3 3.4 4 用伪代码描述算法用伪代码描述算法 伪代码是介于自然语言与编程语言之间的一种算法描述语言,使用伪代码来描述算法可以容易地以任何一种编程语言实现。优点:结构清晰、代码简单、书写方便、可读性好,既类似于自然语言,又便于向计算机语言算法(即程序)过渡。3 3.3 3.5 5 用计算机语言描述算法用计算机语言描述算法 用计算机语言来描述的算法,可以说是算法描述的终极形式。当然,用计算机语言表示算法必须严格遵循所采用的语言的语法规则。3 3.4 4.1 1 迭代法迭代法 迭代法也称辗转法,是一
4、种不断用变量的旧值递推新值的过程。迭代法又分为精确迭代和近似迭代两种。欧几里德算法属于精确迭代法,牛顿迭代法属于近似迭代法。用迭代算法解决一个具体问题时,需要考虑以下三个方面:迭代变量的确迭代变量的确立。立。在可以用迭代算法解决的问题中,至少存在一个直接或间接地不断由旧值递推出新值的变量,这个变量就是迭代变量。迭代关系式的迭代关系式的建立。建立。所谓迭代关系式,指如何从变量的前一个值推出其下一个值的公式(或关系)。迭代过程的控制。迭代过程的控制。不能让迭代过程无休止地重复执行下去。迭代过程的控制通常可分为两种情况:一种是所需的迭代次数是个确定的值,可以计算出来;另一种是所需的迭代次数无法确定。
5、对于前一种情况,可以构建一个固定次数的循环来实现对迭代过程的控制;对于后一种情况,需要进一步分析出用来结束迭代过程的条件3 3.4 4.1 1 迭代法迭代法 最经典的迭代算法是欧几里德算法,也叫辗转相除法,用于计算两个整数a,b的最大公约数(假定ab),其计算原理可表示为:gcd(a,b)=gcd(b,a mod b),即(a,b)和(b,a mod b)的公约数是一样的。欧几里德算法就是一个反复迭代执行,直到余数为0才停止的算法,这实际是一个循环结构。1.1.欧几里德算法欧几里德算法 迭代法也是用于求方程或方程组近似根的一种常用的算法设计方法,牛顿迭代法就是其中的一种。设方程为 f(x)=0
6、,用某种数学方法导出等价的形式 x=g(x)。2.2.牛顿迭代法牛顿迭代法3 3.4 4.1 1 迭代法迭代法 使用牛顿迭代法求根时应注意以下两种可能发生的情况:方程虽然有解,但迭代公式选择不当或迭代的初始近似根选择不合理,也会导致迭代失败。2 如果方程无解,算法求出的近似根序列就不会收敛,迭代过程会变成死循环,因此在使用迭代算法前应先考察方程是否有解,并在程序中对迭代的次数给予限制。1 穷举法也叫列举法。其基本思想是根据提出的问题,列举所有可能的情况,并用问题中给定的条件检验哪些是需要的,哪些是不需要的。因此,列举法常用于解决“是否存在”或“有多少种可能”等类型的问题,例如求解不定方程的问题
7、。这种方法的好处是最大限度考虑了各种情况,从而为求出最优解创造了条件。对于许多毫无规律的问题而言,穷举法用时间上的牺牲换来了解的全面性保证3 3.4 4.2 2 穷举法穷举法 递归是设计和描述算法的一种有力的工具,在用计算机解决某些复杂的问题时,使用递归是十分有效的。递归过程一般通过函数或子过程来实现,在函数或子过程的内部,直接或者间接地又调用到了自身,这种用递归来描述的算法称之为递归算法。3 3.4 4.3 3 递归法递归法 能采用递归描述的算法的特点:能采用递归描述的算法的特点:将求解规模为N的问题,设法将它分解成规模较小的问题,然后从这些小问题的解方便地构造出大问题的解,并且这些规模较小
8、的问题也能采用同样的分解和综合方法,分解成规模更小的问题,并从这些更小问题的解构造出规模较大问题的解。特别地,当规模N=1时,能直接得解。递归算法的执行过程分递推和回归两个阶段。在递推阶段,把较复杂的问题(规模为N)的求解推到比原问题简单一些的问题(规模小于N)的求解。3 3.4 4.3 3 递归法递归法 在使用递归的算法中,必须包含下面两个关键点:在使用递归的算法中,必须包含下面两个关键点:必须有一个明确的必须有一个明确的递归终止条件,即递归终止条件,即递归出口递归出口函数或过程的调用函数或过程的调用中包含它本身中包含它本身3 3.4 4.4 4 回溯法回溯法 回溯法也称为试探法,该方法放弃
展开阅读全文