01背包问题(回溯法实现,java)
上两天学习的回溯算法,老师让我们回溯法来解决01背包问题, 经过了几天的改改增增,终于实现成功了。 自我感觉回溯算法思想,从左到右,一步一步,能走则走,不能则过! 下面直接贴代码,代码上详细注释! import java.util.Arrays; /** * 回溯法的01背包 * * @author anLA * */ public class BagFBack { private MyElement[] myelements; // 封装的物品 private float s; // 背包容量 private float nowWeight = 0; // 记录当前以拿重量 private float nowPrice = 0; // 记录当前以拿价格 private float betterValue; // 记录最多的价格 /* * 构造方法,用于初始化各个变量 */ public BagFBack(float[] w, float[] v, float s) { myelements = new MyElement[w.length]; for (int i = 0; i < w.length; i++) { myelements[i] = new MyElement(); myelements[i].v = v[i]; myelements[i].w = w[i]; }