- 1、本文档共39页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
经典算法例题分析
经典例题分析
在前面的章节中大家对C语言有了大概的了解,本章将重点讲解几个常用到的经典例题,帮助大家加深对C语言的掌握。
八皇后问题
现有8×8的棋盘,要求在其中放入8个皇后,可以使任意两个皇后不能吃掉对方。如果两个皇后在同一行、同一列或者同一对角线,则其中的一个皇后会吃掉另外一个皇后。试求出其所有可能的解,并输出到屏幕。
八皇后的问题分析
现有八个皇后,它们不能放在同一行、同一列、同一对角线上。我们首先手工摆放,尝试从中找到规律,如图16.1所示,图中使用圆形表示皇后。当一个皇后放置后,该皇后所在的行、列、对角线上的位置都标成灰色。这些位置都不能再摆放其他皇后。
八皇后的问题分析
八皇后的算法设计
根据问题分析,可以推导出八皇后的算法设计流程图,如图所示。
八皇后的算法设计
根据问题分析,可以推导出八皇后的算法设计流程图。
八皇后的算法设计
汉洛塔问题
从前在古代印度罗门圣庙的僧尚中,有一种名为汉洛塔的游戏。设有柱子A、B、C,其中柱子A上有着若干个大小不等的圆盘,要将柱子A上的圆盘完整地移动到C柱子上。要求每次只能移动最上面的圆盘,并且可以将柱子B作为媒介,但大的圆盘不能在小的圆盘之上。
汉洛塔问题分析
设A柱上有从小到大的3个盘子,因为大盘不能在小盘之上,因此将A柱中最大的盘子移动到C柱之前,C柱必须为空。可以先将A柱中的2个盘子先移动到B柱上,然后将第3个盘子移动到C柱上。当C柱上已放有最大的盘子时,A柱为空,B柱上有2个盘子。这时可将B柱上的1个盘子移动到A柱上,再将B柱上的剩下的1个盘子移动到C柱上,如此循环直到最后盘子的个数为1为止,直接将盘子移动到C盘上,循环结束。根据题意,来看一下此问题的具体分析,如图16.4所示。
汉洛塔问题分析
汉洛塔的算法设计
根据问题分析,可以推导出汉洛塔的算法设计流程图。
猴子选大王
现有17个猴子,这些猴子根据一个游戏选举大王。其游戏规则为17个猴子站成一圈,然后从1到3开始计数,数到3的猴子淘汰退出游戏,下一个猴子继续从1开始数,直到最后只剩一个猴子,即为大王。
猴子选大王问题分析
可以将每个猴子抽象成一个编号0~16。其中,0表示第一个猴子,以后依次类推,16表示最后一只猴子。然后将数到3的猴子淘汰,下一个猴子从1开始数,根据题意,来看一下此问题的具体分析,如图16.5所示。
猴子选大王问题分析
猴子选王的算法设计
根据问题分析,可以推导出猴子选王算法设计流程图,如图16.6所示。
三个数的最小公倍数
最小公倍数(Least Common Multiple,缩写L.C.M.),如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数,对于两个整数来说,指该两数共有倍数中最小的一个。
三个数的最小公倍数的问题分析
求出的最小公倍数看是否能整除这三个数。若能整除这三个数,则输出其中的最小的数,就是公倍数。根据题意,看一下此问题的具体分析,如图16.8所示
三个数的最小公倍数的算法设计
根据问题分析,可以推导出三个数的最小公倍数的流程图,如图16.9所示。
背包问题
现有9件商品,从中选出3件使得其重量之和与600克之间差值最小,其中每件商品的重量由键盘输入。
背包问题分析
假设9件商品的重量分别为88、90、40、100、60、50、55、99、66,我们对这些商品进行分析,如图16.11所示。我们可以选择其中重量最重的三件商品,看一看重量是否超过600克,如果超过选择次其中的商品。
背包问题的算法设计
根据问题分析,可以推导出背包问题的流程图,如图6.12所示。
循环赛问题
循环赛是大家经常见到的,现在设有n个选手要进行乒乓球选拔赛,编写一个程序设计其比赛日程安排表,具有以下要求:
(1)每名选手都必须与其他选手比赛一次。
(2)每名选手一天之内只能进行一次比赛。
(3)所有选手的比赛在n-1天内比完。
循环赛问题分析图
在遇到循环赛问题时,我们可以将队员的人数分成两半,即8个选手的比赛日程由4个选手的比赛日程决定。用这种一分为二的方法对选手进行划分直至只剩下两个对手为止,单独设置其比赛日程,然后将这些单独的块最后合并起来即为最终的解。根据题意,看一下此题的分析图。如图所示。
16.6.1 循环赛问题分析图
循环赛问题的算法设计
根据分析图,可以推到出循环赛问题的流程分析图,如图所示。
马遍历问题
现有n´m个格子的棋盘,马在棋盘上行走,只能走日字。编写程序,求出马从任意位置出发,将所有格子走完并且只能走过一次的所有路径。
马遍历问题分析图
棋盘总共有n行和m列,马的位置是任意的,马从某点走日字走完所有格子并且只能走的一次,根据题意,看一下此题的分析图所示
16.7.2 马遍历算法设计
根据分析图,可以推到出马遍历的流程图所示。
魔术方正
魔术方正又称幻方阵、魔
您可能关注的文档
- 粮油陈列指南.ppt
- 粤教版七上第二单元第一课悦纳自我(共21张PPT).ppt
- 精品-比较级与最高级.ppt
- 精品课件2.1.3分层抽样(8.25).ppt
- 精品课件 第1节空气和氧气1 科学 新浙教版 八下.ppt
- 粉碎理论及设备.ppt
- 精品课件--简单分类法及其应用.ppt
- 精品课件人教版九年级化学第六单元课题2《二氧化碳制取的研究》PPT课件精品中学ppt课件.ppt
- 精品课程课件:纺织材料学-东华大学18.ppt
- 精品课件新人教版九年级化学上册第六单元课题2_二氧化碳制取的研究ppt.ppt
- 5.3.1函数的单调性(教学课件)--高中数学人教A版(2019)选择性必修第二册.pptx
- 部编版道德与法治2024三年级上册 《科技提升国力》PPT课件.pptx
- 2.7.2 抛物线的几何性质(教学课件)-高中数学人教B版(2019)选择性必修第一册.pptx
- 人教部编统编版小学六年级上册道德与法治9 知法守法 依法维权(第一课时)课件.pptx
- 三年级上册品德道德与法治《学习伴我成长》.pptx
- 部编版小学道德与法治六年级上册6 人大代表为人民 课件.pptx
- 部编版小学道德与法治六年级上册1感受生活中的法律第一课时课件.pptx
- 2.5.2圆与圆的位置关系(教学课件)-高中数学人教A版(2019)选择性必修第一册.pptx
- 2.5.1直线与圆的位置关系-(教学课件)--高中数学人教A版(2019)选择性必修第一册.pptx
- 14.1.1 同底数幂的乘法(教学课件)-初中数学人教版八年级上册.pptx
文档评论(0)