算法设计与分析 课件 6.4-贪心法应用-过河问题_第1页
算法设计与分析 课件 6.4-贪心法应用-过河问题_第2页
算法设计与分析 课件 6.4-贪心法应用-过河问题_第3页
算法设计与分析 课件 6.4-贪心法应用-过河问题_第4页
算法设计与分析 课件 6.4-贪心法应用-过河问题_第5页
已阅读5页,还剩2页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

信息工程大学算法设计与分析贪心法—过河问题国家级实验教学示范中心计算机学科组规划教材算法设计与分析Python案例详解微课视频版一群人在河的右岸,想通过唯一的一根独木桥走到河的左岸,过桥时必须借助灯光照明。独木桥最多能承受两个人,由于只有一盏灯,因此过桥时间等于较慢的那个人单独过桥所需要的时间。给定N个人(2<=N<1000)人单独过桥需要的时间,

请计算最少需要多少时间,他们才能全部到达河左岸。每个人的过河时间从小到大存储在t[i]中,i=0~n-1。按照问题规模从小到大进行分析:当n=1,2时,直接过河;当n=3时,需要两趟;n=3时,用时:t[0]+t[1]+t[2]1.最快的和最慢的(t[2])2.最快的返回(t[0])3.最快的和次慢的(t[1])按照问题规模从小到大进行分析:当n=1,2,3时,容易求解;当n较大时,把若干人送到对岸,再有人把灯拿回来,就可以转换为规模更小的过河问题。基于用时最少的要求,选择过河时间较快的人把灯拿回来。按照问题规模从小到大进行分析。当n=1,2,3时,容易求解;当n≥4时,将过河所需时间最多的两个人送到河对岸,有两种方式:方式一:用最快的逐人送用时:2*t[0]+t[n-1]+t[n-2]方式二:最慢和次慢的一起过河用时:t[0]+2*t[1]+t[n-1]1.最快的和最慢的(t[n-1])2.最快的返回(t[0])3.最快的和次慢的(t[n-2])4.最快的返回(t[0])1.最快的和次快的(t[1])2.最快的返回(t[0])3.最慢的和次慢的(t[n-1])4.次快的返回(t[1])贪心法求解过河问题的步骤:按从小到大的顺序对过河时间排序,存储到数组t中;当n>=4时,比较方式一和方式二的时间,选择用时少的(贪心选择策略),同时n=n-2;重复步骤2,直到人数不足4时,直接求解。sort(t,t+num);/*对过河时间从小到大排序*/voidwork(intn)/*贪心法求解n个人的过河问题*/{if(n==1){ans+=t[0];return;}if(n==2){ans+=t[1];return;}if(n==3){ans+=t[0]+t[1]+t[2];return;}if(n>=4){if((t[1]*2)>=(t[0]+t[n-2]))ans+=t[0]*2+t[n-2]+t[n-1];/*选择方式一*/elseans+=t[1]*2+t[0]+t[n-1];

/*选择方式二*/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论