设为首页 加入收藏

TOP

纯C语言:贪心部分背包问题源码
2014-11-23 20:25:06 来源: 作者: 【 】 浏览:6
Tags:语言 贪心 部分 背包 问题 源码
#include
  
   

struct Bag
{
	int BagID;
	int BagWeight;
	int BagPrice;
	int SinglePrice;
	float Num;
};

void seekBest(Bag bag[],int n,float bagRL)
{
	int i;
	float BRL=bagRL;
	for(i=0;i
   
    BRL) break; else { bag[i].Num=1; BRL=BRL-bag[i].BagWeight; } } if(i<=n) { bag[i].Num=BRL/bag[i].BagWeight; } for(i=0;i
    
     0) { printf("放入ID号为:%d 重量为 %d 的物品 %f 件!!!\n\n",bag[i].BagID,bag[i].BagWeight,bag[i].Num); } } } void Sort(Bag bag[],int n) { int j; Bag temp; int i; for(i=0;i
     
       #include
      
        #define N 50 struct Object { int list; // 物体的编号 float p; // 物体的价值 float w; // 物体的重量 float v; // 物体的价值重量比 }; void MERGE(Object A[],int low,int mid,int high) { int h,i,j,k; Object* B=(Object*)malloc((high-low+1)*sizeof(Object)); h=low; i=0; j=mid+1; while (h<=mid && j<=high) { if (A[h].v>=A[j].v ) { B[i]=A[h]; h=h+1 ; } else { B[i] =A[j]; j=j+1 ; } i++; } if( h>mid) { for (k=j;k<=high;k++) { B[i]=A[k]; i=i+1; } } else for (k=h;k<=mid;k++) { B[i] =A[k]; i=i+1; } i=0; for (k=low;k<=high;k++) { A[k] =B[i] ; i++; } free(B); } void MERGESORT(Object array[],int low,int high) { int mid; if( low
       
        >m; cout<<"请输入物体的个数:"; cin>>n; cout<<"请输入物体的价格、重量:"<
        
         >instance[i].p>>instance[i].w; cout<<"--------------------------------------"<
         
          
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇纯C语言:检索与周游遍历源码 下一篇纯C语言:贪心Kruskal算法生成树..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: