您所在位置: 网站首页 / 贪心算法实验报告5篇.docx / 文档详情
贪心算法实验报告5篇.docx 立即下载
2025-08-28
约1.9万字
约34页
0
29KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

贪心算法实验报告5篇.docx

贪心算法实验报告5篇.docx

预览

免费试读已结束,剩余 29 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

贪心算法实验报告5篇

第一篇:贪心算法实验报告实验报告题目实验四贪心算法开课实验室:数学实验室指导老师:韩逢庆时间:2011.12学院:理学院专业:信息与计算科学班级:2009级2班姓名:古月学号:09180230一、实验目的1.加深学生对贪心算法设计方法的基本思想、基本步骤、基本方法的理解与掌握;2.提高学生利用课堂所学知识解决实际问题的能力;3.提高学生综合应用所学知识解决实际问题的能力。二、实验内容题目见P143:4-16,4-23.三、实验要求(1)用分治法求解最少加油次数和最少硬币个数问题;(2)再选择自己熟悉的其它方法求解本问题;(3)上机实现所设计的所有算法;四、实验过程设计(算法设计过程)(1)最少加油次数实验题目一辆汽车加满油以后可以行使n公里,旅途中有若干个加油站,设计一个有效算法,指出应在哪些加油站停靠加油,使沿路加油次数最少。并证明算法能产生一个最优解。过程设计贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。当然,希望贪心算法得到的最终结果也是整体最优的。虽然贪心算法不能对所有问题都得到整体最优解,但对许多问题它能产生整体最优解。比如说最少加油次数的问题。在这个算法中,我采用的贪心算法的策略。首先人机互动的设定加满油以后最长能够行使的距离,然后输入了各个站点之间的距离,在程序的设计中,首先检查了程序的可行性。要是遇到当某两个站点之间的距离大于汽车一次加油以后所能够行使的最大距离时,我们认为此问题是不可行的。这个在实际情况中也是很容易理解的。然后在满足可行性条件下,依次采用贪心算法对问题得以实现。采用s这个来保存现在车里面留下的油,当此时留下的有能够行驶完这一站点到下一站点之间的距离是,在这一站点的时候就不加油。但是若不能行使完这一段路程的时候,就加满油。核心算法如下:for(i=0,s=0;i{s=s+a[i];if(s>n){sum++;s=a[i];}}(2)最少硬币个数问题实验题目考虑下面的用最少硬币个数找出n分钱的问题:当使用2角5分,1角,5分和1分四种硬币面值时,设计一个找n分钱的贪心算法,并证明算法能产生最优解。过程设计贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。当然,希望贪心算法得到的最终结果也是整体最优的。虽然贪心算法不能对所有问题都得到整体最优解,但对许多问题它能产生整体最优解。比如说找最少硬币个数的问题。在算法的实现过程中,当剩余的钱数大于2角5分时,我们在记录找2角5分硬币的个数的变量里面加一,同时把剩余所找的钱的总数目也减2角5分。不断重复这个过程,直到剩余所需找的钱的数目小于2角5分时,在记录找1角硬币的个数的变量里面加一,同时把剩余所找的钱的总数目也减1角,不断重复这个过程,直到剩余所需找的钱的数目小于1角。5分和1分的硬币实现过程同上述过程一样,一直执行到所剩的钱的数目为0,此时停止计算,得到最优解。五、实验结果分析(1)最少加油次数当加油后行驶的最大距离小于相邻站点的最小值时,此时,可行,求解结果如下:当加油后行驶的最大距离大于相邻站点的最小值时,此时,没用可行性,为边沿情况,求解结果如下:(分析时空复杂性,设计测试用例及测试结果)时间复杂性:该算法的时间复杂度为O(n)空间复杂性分析:该算法的空间复杂度为O(1)(2)最少硬币问题当输入的找零钱数为正常的时候的运行情况如下:当输入的找零钱数为不正常的时候(为负)的运行情况如下:(分析时空复杂性,设计测试用例及测试结果)时间复杂性:该算法的时间复杂性为O(n)空间复杂性分析:该算法的空间复杂性为O(1)六、实验体会贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。当然,希望贪心算法得到的最终结果也是整体最优的。虽然贪心算法不能对所有问题都得到整体最优解,但对许多问题它能产生整体最优解。如单源最短路经问题,最小生成树问题,相容活动安排问题等。这样和采用动态规划的算法相比,算法的思想更加的简单,实现起来更加的容易。但是也要明确贪心算法和动态规划的主要区别。及0-1背包问题可以用动态规划算法求解,但是贪心选择算法却不能用动态规划算法求解。因为贪心算法无法最终将背包装满,部分闲置的背包空间使得每公斤背包空间的价值降低了。七、附录:(源代码)(1)最少加油次数具体算法的实现如下:#includevoidmain(){intn,m,a[100],i,s,sum=0,j;cout>n;cin>>m;coutcin>>a[i];}for(i=0;icoutif(a[j]>m){sum=-1;break;}if(sum!=
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

贪心算法实验报告5篇

文档大小:29KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用