贪心算法装载问题完整Java代码
时间: 2024-06-13 16:09:13 浏览: 141
根据引用[1]提供的问题,以下是贪心算法装载问题的完整Java代码:
```java
import java.util.Arrays;
public class GreedyLoading {
public static void main(String[] args) {
int[] weights = {3, 5,2, 7, 4, 1, 9, 8, 6}; // 集装箱重量
int capacity = 20; // 轮船载重量
int count = loading(weights, capacity); // 装载集装箱数量
System.out.println("最优装载数量为:" + count);
}
/**
* 贪心算法装载问题
*
* @param weights 集装箱重量数组
* @param capacity 轮船载重量
* @return 最优装载数量
*/
public static int loading(int[] weights, int capacity) {
Arrays.sort(weights); // 将集装箱按重量从小到大排序
int count = 0; // 装载数量
int sum = 0; // 已装载重量
for (int i = 0; i < weights.length; i++) {
if (sum + weights[i] <= capacity) { // 如果当前集装箱可以装载
sum += weights[i]; // 装载当前集装箱
count++; // 装载数量加1
} else {
break; // 如果当前集装箱无法装载,则退出循环
}
}
return count;
}
}
```
阅读全文