java 背包问题
来源:互联网 发布:金山软件西山居 编辑:程序博客网 时间:2024/04/29 11:16
(背包问题)一个小偷抢劫了一个保险箱,发现里面装有N种大小和价值不同的东西,但只有一个容量为M的小背包来运走这些东西。背包问题就是让小偷选择放在背包中的物品,使得能带走的东西的总价值最大。
例: 物品 A B C D E
大小 3 4 7 8 9
价值 4 5 10 11 13
背包大小 17
输出最大价值:24
分析:需先遍历所有符合条件的情况,记录最大总价值,可用递归回溯实现遍历。
java程序源码:
public class Test{
private static int[] size={3,4,7,8,9};
private static int[] value={4,5,10,11,13};
public static int getMax(int cap)
{
int i,space,max=0,t;
for(i=0;i<5;i++)
{
if((space=cap-size[i])>=0)
if((t=getMax(space)+value[i])>max)
max=t;
}
return max;
}
public static void main(String[] args) {
System.out.println(getMax(17));
}
}
思考:如果该题中保险箱中的东西数目是有限的,那又该怎么做呢?如果再加上各种东西的重量以及小偷能带走的最大重量,这又该怎么做呢?
- 背包问题-java实现
- java 背包问题
- JAVA求解背包问题
- 背包问题(java)
- 背包问题求解 - java
- 01背包问题-java
- 背包问题java 代码
- 完全背包问题 ------ java
- Java 01背包问题
- 01背包问题 java
- 01背包问题--Java
- 【java】背包问题
- 背包问题(01背包和完全背包)java求解
- 背包问题(01背包和完全背包)java求解
- 01背包问题(java实现)
- Java上机题,背包问题
- Java解决算法-背包问题
- 2 背包问题-Java程序
- Linux命令行之逗趣无极限 笔记
- c++实现BF算法 KMP算法
- Linux添加或者删除用户和用户组
- JAVA开发从Servlet读取文件
- 高效程序员的 7 个共同特征
- java 背包问题
- 好文章收集
- Memcache常用管理命令
- 信息统计模版,0编码配置信息统计类应用
- 关于MyEclipse安装路径下没有common目录的解决办法
- java list 去除重复数据
- 9i10g11g编程艺术——事务
- SQLServer2005数据库快照的简单使用
- IBM的LPI复习资料之LPI101-Topic103 :GNU和Unix命令(2)文本流和过滤器