贪心算法 之 装箱问题

本文介绍了如何使用贪心算法解决装箱问题,通过贪婪准则将物品按体积降序排列,然后尝试放入已打开的箱子,以最小化箱子数量。文章提供了伪代码和C语言的实现。
摘要由CSDN通过智能技术生成

贪心算法  之  装箱问题(可得到最优解的近似解)

1.贪婪准则:
1>贪婪准则设计算法的每一步的最优解(局部最优)
2>贪心准则一旦设好,中途不变
2.贪婪准则并不一定能得到最优解:


装箱问题:
有若干个体积为V的箱子;
有N个物品体积为:v0,v1,v2,v3.......
要求:
将所有的物品装入箱子中,使得打开的箱子最少;

贪婪准则:
1.将所有物品按照体积降序排列;
2.每次取出一个物品(当前没有装入箱子的体积最大的);
3.遍历所有已打开的箱子,放入一个较早打开的箱子,如果放不下便开一个新箱子;

实现(由伪代码描述):
1.存储:

2.类型声明:

物品信息:

typedef struct{             
int gnum;  //物品编号
int gv;      //物品体积
}ElemG;

物品信息集合:假设有n个物品;

ElemG  *g;
g=(ELemG *)malloc(n*sizeof(ElemG));

物品信息初始化:
for(int i;i<n;i++){

}
物品节点:

typedef struct node{
int gnum;
struct node *link

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值