算法实例复习提纲.docVIP

  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文档。上传文档
查看更多
算法实例复习提纲 一、解析法 1.解析法概念:根据题目中给出的已知条件,找出已知条件与要求的结果之间的关系的数学表达式,并通过计算表达式来实现问题求解的方法。 2.解析法算法实例 (1)输入直角坐标系中两点坐标,计算两点间距离,并输出结果。 (2)输入圆半径,计算圆面积和周长,并输出结果。 (3)输入人民币金额,计算兑换后的美元金额并输出。(假定汇率为6.83) 二、枚举法 枚举算法的概念 列出各种可能的情况并逐一进行检验,根据检验的结果执行相应的操作。 “枚”就是一个一个;“举”就是列举。核心:不遗漏不重复。枚举算法充分利用了计算机“运行速度快、不知疲倦”的优势。 2.枚举算法的结构特点 列举——由循环结构实现 检验——由分支结构实现 因此,枚举算法的一般结构是:循环结构中嵌套分支结构。 3.枚举算法的设计步骤 确定列举的范围——不能随意扩大和缩小范围,否则会造成重复或漏解。 明确检验的条件——根据检验的对象来设定条件,以及检验后所执行的相关操作。 确定循环控制的方式和列举的方式——借助循环变量的变化来列举,或通过输入。 4.枚举算法实例 通过输入的数据作为检验的对象。 (1)输入10个数,分别统计正数和负数的个数 (2)输入5个成绩,统计其中100分的人数 这两个问题也采用了枚举算法的思想,从结构上看,都是循环结构嵌套分支结构。所检验的对象是通过键盘输入的数据。 通过循环变量的变化来作为检验的对象。 以下6个实例是不需要输入语句的,因为检验的对象正好包含循环变量的变化。 (1)打印出1-1000以内能同时被7和11整除的自然数。 (变量 n 表示这个自然数,列举范围从1—1000) (2)找水仙花数:一个三位数,各个位置上的数字的立方和等于该数本身 (变量 n 表示这个三位数,列举范围从100—999) (3)鸡兔同笼:20只头,56只脚,问鸡、兔各有几只? (变量 x 表示鸡的个数,列举范围从1—20) (4)涂抹单据:一张单据上的5位数号码,千位和百位数字已经模糊不清 “1XX47” ,但这个5位数是57或67的倍数。 (变量 x 表示这个两位数,列举范围从0—99) (5)包装600个变形金刚,小盒每盒12个,大盒每盒15个。盒数都不能为0。输出所有可能的包装方案。 (变量 s 表示小盒子的数量,列举范围从1—50,不包括50) (6)等式成立:34*8□56 = 43*65□8 使等式成立的数字是什么? (变量 n表示这个数,列举的范围从0—9) 三、数组 数组是一种特殊的变量,它在内存中的位置是连续的,利用数组中各个元素下标的连续性的特点,可以采用循环结构对各个元素进行赋值或运算。 【实例】数组的输入与逆序输出 四、查找 1、顺序查找:按照数组元素的先后次序,从第一个元素开始进行遍历,逐个检验是否和关键字相等,找到了即退出。 2、对分查找:先取数组中间的元素和关键字比较,若不相等则缩小近一半的查找范围,在剩下的元素中继续查找。 由于对分查找每查找一次,查找范围就缩小一半,因此对分查找的效率要远高于顺序查找,但它的前提是:待查找的数据必须是有序的。 五、排序 1、冒泡排序: 从最下面一个元素起,自下而上地比较相邻两个元素中的数据,将较小的数值交换到上面一个元素。重复这一过程,直到处理完最后两个元素中的数据,称为一遍加工。此时,最小的数据已经上升到第一个元素的位置。 然后对余下的i-1个元素重复上述过程。 由于每一遍加工都是将最小的元素像气泡一样浮至顶端,故称为冒泡排序。 例如:有4个数据:18,15,2,9,按照从小到大的顺序排列,过程如下: 原始数据 18 15 2 9 第一遍 2 18 15 9 第二遍 2 9 18 15 第三遍 2 9 15 18 2、选择排序 从第一个元素起,自上而下找出最小数,并记录下它的位置,将最小数交换到第一个元素中。完成第一遍加工。 然后对余下的i-1个元素重复上述过程。 在每一遍加工中,只需交换一次位置即可 例如:有4个数据:18,15,2,9,按照从小到大的顺序排列,过程如下: 原始数据 18 15 2 9 第一遍 2 15 18 9 第二遍 2 9 18 15 第三遍 2 9 15 18 选择排序实际上是一种优化了的排序方法,它和冒泡排序的区别在于减少了交换的次数,在每一遍的加工过程中,选择排序采用的方法是通过遍历,记录下最值的位置,最后再将最值所在位置的数据与待排元素所在的位置进行交换,因此每一遍加工只需交换依次位置。大大减少了算法的复杂度。 六、擂台法 【实例】已知数组d中已经存放了10个数,输出其中的最大值。 采用“擂台法”,用变量k跟踪当前的最大值,思路如下: 先假设d(1)中的数据是当前的最大值,即k=d

文档评论(0)

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

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

1亿VIP精品文档

相关文档