思路: 首先将物品根据性价比排好序在一个集合里,性价比=价格/重量...
然后根据性价比从大到小依次依次放入背包,如果没办法放入这个物品的全部,就放入一部分,如果可以放入全量物品,就放入全量物品。
Main.java的代码
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; /** * Created by HuLuo on 2016/2/16. */ public class Main { //背包总质量 private static double M = 20; //物品数量 private static int number = 3; public static void main(String[] args) { MyObject myObject1 = new MyObject( 18, 25 ); MyObject myObject2 = new MyObject( 15, 24 ); MyObject myObject3 = new MyObject( 10, 15 ); ArrayList<MyObject> myObjects = new ArrayList<MyObject>( number ); myObject1.priceRatio = ( myObject1.price * 1.0 ) / ( myObject1.weight ); myObject2.priceRatio = ( myObject2.price * 1.0 ) / ( myObject2.weight ); myObject3.priceRatio = ( myObject3.price * 1.0 ) / ( myObject3.weight ); my