第2章算法与程序资料.ppt

  1. 1、本文档共49页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章算法与程序资料

算法流程图 开始 输入x p=0 p=0.05*(x-1000) p=500*0.05+0.1*(x-1500) p=500*0.05+0.1*2500+0.2*(x-4000) 输出p值 结束 x≤1000? x≤1500? x≤4000? Y N Y Y N N 2.5 算法设计举例 2.5.3 循环结构算法设计 例2.12 百鸡问题:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何? 分析:cocks+hens+chicks=100 5*cocks+3*hens+chicks/3=100 其中0≤cocks≤19,0 ≤hens ≤33,0 ≤chicks ≤100 算法描述 cocks=0 当cocks ≤19时 {找满足题意的hens及chicks数 cocks加1 } 对于找满足题意的hens及chicks数可细化如下: cocks=0 当cocks ≤19时 {hens=0 当hens ≤33时 {找满足题意的chicks数 hens加1 } cocks加1 } 算法描述 对于找满足题意的chicks数可进一步细化如下: cocks=0 当cocks ≤19时 {hens=0 当hens ≤33时 {chicks=100-cocks-hens 如果满足(5*cocks+3*hens+chicks/3=100)则输出 hens加1 } cocks加1 } 程序实现 #include stdio.h void main() { int cocks=0,hens,chicks; while(cocks=19) { hens=0; while(hens=33) { chicks=100-cocks-hens; if(5.0*cocks+3.0*hens+chicks/3.0==100.0) printf(公鸡%d只,母鸡%d只,小鸡%d只\n,cocks,hens,chicks); hens++; } cocks++; } } 2.5 算法设计举例 2.5.4 常见算法设计 1.简单数学问题 例2.13 判断素数 s1:输入n的值 s2:2 = i ( i作除数) s3:n被i除得余数r s4:若r = 0,表示n能被i整除,则打印“n不是素 数”,算法结束;否则执行s5。 s5:i + 1 = i s6:若 i = n-1,返回s3;否则打印“n是素数”, 然后结束。 例2.14 求两个正整数的最大公约数 解法一:更相减损之术 S1:输入两个正整数m和n S2:若mn,则交换m和n S3:以n减去m,令所得的差为r S4:若r=0,则输出结果n,算法结束,否则继续 S5:若rm,则令n=m,m=r;否则令n=r,返回步骤3继续进行 例2.14 求两个正整数的最大公约数 解法二:辗转相除法 S1:输入两个正整数m和n S2:若mn,则交换m和n S3:以n除以m,令所得的余数为r S4:若r=0,则输出结果n,算法结束,否则继续 S5:令n=m,m=r;返回步骤3继续进行 2.5 算法设计举例 2.5.4 常见算法设计 2.查找 顺序查找 折半查找 s1:输入排好序的数组元素 s2:输入要查找的值key s3:n判断循环变量是否符合条件,若是转s4,否则转s7 s4:获取中间位置mid s5:如果midkey,则往低的位置查找,否则往高的位置查找 s6:找到与key匹配的值,将其位置=result转s7,否则result=-1转s3 s7:输出变量reslut的值,如果是-1,表示查找失败,否则即为要查找元素的位置。 2.5 算法设计举例 2.5.4 常见算法设计 3.排序 (1)冒泡排序法 输入n 个数给a[1] 到 a[n] for j=1 to n-1 for i=1 to n-j a[i]a[i+1] 真 假 a[i]?a[i+1] 输出a[1] 到 a[n] 例 38 49 65 76 13 27 30 97 第一趟 38 49 65 13 27 30 76 第二趟 38 49 13 27 30 65 第三趟 38 13 27 30 49 第四趟 13 27 30 38 第五趟 13 27 30 第六趟 49 38 65 97 76 1

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档