程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 純C語言:貪心部分背包問題源碼

純C語言:貪心部分背包問題源碼

編輯:關於C語言

#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;iBRL)
			break;
		else
		{
			bag[i].Num=1;
			BRL=BRL-bag[i].BagWeight;
		}
	}
	if(i<=n)
	{
		bag[i].Num=BRL/bag[i].BagWeight;
	}

	for(i=0;i0)
		{
			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<<"--------------------------------------"<

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved