贪心算法最优装载问题

贪心算法Q1—— 最优装载问题

/*问题描述
在北美洲东南部,有一片神秘的海域,那里碧海 蓝天、阳光明媚,这正是传说中海盗最活跃的加勒比海。17 世纪时,这里更是欧洲大陆 的商旅舰队到达美洲的必经之地,所以当时的海盗活 动非常猖獗。有一天,海盗们截获了一艘装满各种各样古董的 货船,每一件古董都价值连城,一旦打碎就失去了它 的价值。
虽然海盗船足够大,但载重量为 30,每件古董的重量分别为 3,5,4,10,7,14,2,11,
海盗们该如何把尽可能多数量的宝贝装上海盗船呢?
*/

package 贪心;
import java.util.Arrays;
public class 最优装载问题 {

	public static void main(String[] args) {
		Integer[] weights= {3,5,4,10,7,14,2,11};
		//从小到大排2 3 4 5 7 10 11 14
		Arrays.sort(weights);
//		for(int i=0;i<weights.length;i++)
//			System.out.println(weights[i]);
		int capacity=30,count=0,newWeight=0;
		//当前所选古董的总重量比船容量小才进入选古董 否则提前跳出外循环
		for(int i=0;i<weights.length&&newWeight<capacity;i++) {
			//尝试将古董装上船
			newWeight=newWeight+weights[i];
			if(newWeight<=capacity) {//满足船的容量则正真装上 计数器加1
				count++;
				System.out.println(weights[i]);
			}
		}
		System.out.println(count);
	}

}
发布了9 篇原创文章 · 获赞 0 · 访问量 164

猜你喜欢

转载自blog.csdn.net/weixin_44855907/article/details/104526352