背包问题贪心选择算法c++代码
时间: 2023-11-23 07:57:40 浏览: 92
贪心算法 部分背包问题
根据提供的引用内容,以下是背包问题贪心选择算法的C++代码:
```c++
void Knapsack(int n, float M, float v[], float w[], float x[]) {
// 此函数可以直接使用已经排序好的v[]和w[]数组;
// n为物品数;M为背包大小;v为物品价值数组;w为物品重量数组;x为占比数组;
int i;
float c;
Sort(n, v, w);
for(i=1; i<=n; i++) x[i] = 0; // 将每件物品装进去背包的部分与总体的占比置零,最大为1
c = M;
for(i=1; i<=n; i++){
if(w[i]>c) break; // 若背包装不下,则跳出循环
x[i] = 1;
c -= w[i];
}
if(i<=n) x[i] = c/w[i]; // 若背包没有达到全部装进去的目的,则装入部分
}
```
阅读全文