鱼C论坛

 找回密码
 立即注册
查看: 5400|回复: 21

[争议讨论] 算法每日一题(八)——__贪心法

[复制链接]
发表于 2011-7-11 13:43:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 LNH_Sniper 于 2011-7-11 19:57 编辑

问题: 有一批集装箱要装入一个质量为C的货船中,每个集装箱的质量由用户自己输入指定,在货船的装载体积不限的前提下,如何装载集装箱才能尽可能多的地将集装箱装入货船中。


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-11 17:23:36 | 显示全部楼层
挺有意思的, 我没接触过这个算法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-7-11 22:31:22 | 显示全部楼层
贪心法基本概念:
(1)贪心选择性质:就是指所求解问题的整体最优解可以通过一系列的局部最优解得到。所谓局部最优解,就是指在当前的状态下做出的最好选择。
(2)最优子结构性质:当一个问题的最优解包含着它的子问题的最优解时,就称此问题具有最优子结构性质。

具备以上两种性质,就可以通过贪心法求解。


对本题分析:
       这个问题可以用贪心法求得最优解。只要每次装船时,采取质量最轻的集装箱先装船的策略,就可以得到最优装船问题的一个最优解。
       在设计算法时,可用一个数组w[]存放每个集装箱的质量,例如w[2] = 5, 就表示第 2 个集装箱的质量为 5。再设置一个向量数组 x[]存放集装箱的取舍状态。其中,x = 1 表示将第 i 个集装箱放入船中,x = 0 表示第 i 个集装箱不装入货船。最终输出的结果应当是向量数组x[]的下标,如果输出结果为{ 0, 1, 4, 5 }表示将第 0, 1 , 4, 5个集装箱装入货船中。也就是输出数组 x[] 中所有  x[ i ] = 1 的下标 i。
       应用贪心算法求解,每次都要选出数组 w[]中当前质量最轻的( 即 w 值最小的 ) 集装箱,并将 x置 1,同时  c = c - w,即变量  c 中存放货船已达到最大载质量,或者集装箱完全装完为止。然后输出数组x[]中所有x = 1 的下标 i。
      

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-12 09:52:59 | 显示全部楼层
能不能 写一小段程序 说明
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-13 23:25:01 | 显示全部楼层
表示 可以理解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-20 23:03:34 | 显示全部楼层
又看了一遍 明白多了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-20 23:16:19 | 显示全部楼层
本来我想可以先排个序,后来仔细一想,还不可以,因为一旦排序后,箱子的编号就乱了。不知道是否可以这么做
  1. typedef struct box
  2. {
  3.     int weight;
  4.     int num;
  5. }Box[5];
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2014-6-3 19:16:42 | 显示全部楼层
需要LOOKLOOK。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-5 11:01:06 | 显示全部楼层
学习学习   很不错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-1 12:36:40 | 显示全部楼层
最近那个微信神经猫说用的就是贪心算法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-4 18:00:33 | 显示全部楼层
发个梵蒂冈地方个梵蒂冈地方
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-11 17:42:42 | 显示全部楼层
谢谢楼主分享!!!!!!!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-5 21:26:32 | 显示全部楼层
是动态规划吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-5-24 04:04:55 | 显示全部楼层
辛苦了辛苦了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-5-24 04:06:25 | 显示全部楼层
ThanksFORshare
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-5-24 10:05:48 | 显示全部楼层
{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-5-24 16:44:11 | 显示全部楼层
挺有意思的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-5-25 16:04:49 | 显示全部楼层
哇,看到这,我好兴奋:ton:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-5-26 22:04:46 | 显示全部楼层
哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-10-12 00:29:00 | 显示全部楼层
挺有意思的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 01:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表