0-1背包问题java源代码实现

作者:落知秋 | 创建时间: 2023-04-26
0/1背包问题的动态规划法求解,前人之述备矣,这里不过是自己根据理解实现了一遍,主要目的还是锻炼思维和编程能力,同时,也是为了增进对动态规划法机制的理解和掌握。  在用 JAVA 实现时, 是按算法模型建模网上有一个哥们用的对象这里我直接使...
0-1背包问题java源代码实现

操作方法

问题描述:给定n种物品和一背包。物品i的重量是w[i],其价值为v[i],背包的容量为C。问应如何选择装入背包的物品,使得装入背包中物品的总价值最大?

分析:对于一种物品,要么装入背包,要么不装。所以对于一种物品的装入状态可以取0和1。设物品i的装入状态为xi,xi∈ (0,1),此问题称为0-1背包问题。

数据: 物品个数n=5,物品重量w[5]={2,2,6,5,4}, 物品价值v[5]={6,3,5,4,6},总重量c=10。 背包的最大容量为10,那么在设置数组m大小时,可以设行列值为5和10,那么,对于m(i,j)就表示可选物品为i到n且背包容量为j(总重量)时背包中所放物品的最大价值。看下面这个表格即为动态规划法解0-1背包问题的过程:

主要功能程序:

测试程序

运行结果:

点击展开全文

更多推荐