贪心算法
#include<iostream.h>
#define M 100 //最多物品数
void sort (int n,double p[M],double s[M]) //按价值密度排序
{
int j,h,k;
double temp1,temp2,temp3,c[M];
for(k=1;k<=n;k++)
c[k]=p[k]/s[k];
for(h=1;h<n;h++)
for(j=1;j<=n-h;j++)
if(c[j]<c[j+1])
{
temp1=p[j];p[j]=p[j+1];p[j+1]=temp1;
temp2=s[j];s[j]=s[j+1];s[j+1]=temp2;
temp3=c[j];c[j]=c[j+1];c[j+1]=temp3;
}
};
void knapsack(int n,int C,double p[M],double s[M],int x[M])
{
double c1; //c1为背包剩余可装载重量
int i;
sort(n,p,s);