首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用堆数据结构求解小数背包?

如何用堆数据结构求解小数背包?
EN

Stack Overflow用户
提问于 2015-12-13 07:18:05
回答 1查看 309关注 0票数 0

如果我使用利润/权重的值并将build堆应用于这些值,那么我将按照顺序(N)的时间得到一个最大堆,现在混淆的是如何删除--最大值,因为在我删除最大值之后,我将如何知道与堆中存储的节点关联的权重和利润,因为堆只存储与利润/权重相关的值。

因此,要执行进一步的计算,例如减少背包的容量,并将利润值添加到已经获得的利润值,我将如何进行这些计算?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-13 13:44:47

我假设您正在使用“int”类型的数组来构建max-堆。相反,您可以做的是使用‘struct’类型的数组(如果您正在使用C),如下所示。

代码语言:javascript
复制
struct items {
   int profit_by_weight;
   int weight;
};

使用‘profit_by_weight’的值构建最大堆(如果您是初学者的话有点棘手),并在从堆访问项时使用权重的值来完成所需的计算。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34248849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档