• 大小: 2KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-05-19
  • 语言: C/C++
  • 标签:

资源简介

用贪心法解决背包问题的源代码,在vc++环境下也可以运行

资源截图

代码片段和文件信息

#include 

struct goodinfo
{
 float p; //物品效益
 float w; //物品重量
 float X; //物品该放的数量
 int flag; //物品编号
};//物品信息结构体


void Insertionsort(goodinfo goods[]int n)
{
 int ji;
 for(j=2;j<=n;j++)
 {
  goods[0]=goods[j];
     i=j-1;
  

  while (goods[0].p>goods[i].p)
  {
   goods[i+1]=goods[i];
   i--;
  }
  goods[i+1]=goods[0];
 }

}//按物品效益,重量比值做升序排列


void bag(goodinfo goods[]float Mint n)

 
 float cu;
 int ij;
 for(i=1;i<=n;i++)
  goods[i].X=0;
 cu=M;  //背包剩余容量
 for(i=1;i {
  if(goods[i].w>cu)//当该物品重量大与剩余容量跳出
   break;
  
   goods[i].X=1;
   cu=cu-goods[i].w;//确定背包新的剩余容量
 }
 if(i<=n)
  goods[i].X=cu/goods[i].w;//该物品所要放的量

/*按物品编号做降序排列*/ 
 for(j=2;j<=n;j++)
 {
  goods[0]=goods[j];
     i=j-1;
  

  while (goods[0].flag  {
   goods[i+1]=goods[i];
   i--;
  }
  goods[i+1]=goods[0];
 }
////////////

评论

共有 条评论

相关资源