输出如下:
背包所盛放物品的最大价值为:
60
所盛放物品编号为
[1, 2]
代码如下:
package AlgorithmTest; import java.util.ArrayList; import java.util.Collections; /** * Created by dell on 2016/12 *用回溯法求解01背包问题,回溯法可以求解最优解问题和求出多个符合要求的解。关键是要讲问题的解空间转换成数,使得树的一条路径就是一个解。. */ public class BagProblem { public static void main(String[] args) { int[] weights = new int[]{ 18, 14, 16};//三个物品的重量 int[] vaules = new int[]{ 48, 30, 30};//三个物品的价值 int bagHodler = 30;//bag的承重为30,想要知道将将那些物品放入bag中能使价值最大,且不超重 SolveSpaceTree solveSpaceTree = new SolveSpaceTree(weights, vaules, bagHodler); Result result = solveSpaceTree.getSolve(); System.out.println("背包所盛放物品的最大价值为:"); System.out.println(result.value); System.out.println("所盛放物品编号为"); System.out

本文介绍了如何运用回溯法求解经典的0/1背包问题,通过实例展示了算法的应用,得出最大价值为60,并给出了盛放物品的编号。详细代码呈现了解决过程。
9251

被折叠的 条评论
为什么被折叠?



