#include
#include
#include
const int N=10;
struct goods{
int No;//编号
int w;//重量
int v;//价值
double avg;//单位重量的价值
};
void selectsort(goods g[]){//选择排序
for(int i=0;i for(int j=i;j if(true){//应按什么排序?
goods x;
x=g[i];
g[i]=g[j];
g[j]=x;
}
}
double greedy(goods g[],int c)
{
selectsort(g);
//先装哪个?如何判断是否满了?什么时候需要分割物品?如何记录最大价值?
return 0;
}
int main()
{
//srand((unsigned)time(NULL));
int c=rand()%50;//初始化背包容量
printf("背包最大承重:%d公斤\n",c);
goods g[N];
for(int i=0;i {
g[i].No=i;
g[i].w=rand()%10+1;
g[i].v=rand()%10+1;
g[i].avg=g[i].v;
g[i].avg=g[i].avg/g[i].w;
printf("物品%d重%d公斤,价值%d元\n",g[i].No,g[i].w,g[i].v);
}
printf("能装入背包的最大价值为%f元\n",greedy(g,c));
return 0;
}
0-1背包问题
最新推荐文章于 2024-09-16 12:44:29 发布