111,130
社区成员
发帖
与我相关
我的任务
分享
//定义物品的种类
static int Num = 5;//物品的种类
//初始数据
private List<Fruit> GetList()
{
List<Fruit> list = new List<Fruit> ();
string[ , ] Data = this.LoadData();
for ( int i = 0 ; i < Num ; i++ )
{
Fruit model = new Fruit();
model.Code =int.Parse( Data[ i , 0 ].ToString());
model.Name = Data[ 1 , 1 ].ToString();
model.Weight = int.Parse( Data[ i , 2 ].ToString() );
model.Price = float.Parse(Data[i,3].ToString());
list.Add( model );
}
return list;
}
private string[ , ] LoadData()
{
string [,] Data= new string [Num,4];
Data[ 0 ,0 ] = "0";
Data[ 0 , 1 ] = "A";
Data[ 0 , 2 ] = "4";
Data[ 0 , 3 ] = "4500";
Data[ 1 , 0 ] = "1";
Data[ 1 , 1 ] = "B";
Data[ 1 , 2 ] = "5";
Data[ 1 , 3 ] = "5700";
Data[ 2 , 0 ] = "2";
Data[ 2 , 1 ] = "C";
Data[ 2 , 2 ] = "2";
Data[ 2 , 3 ] = "2250";
Data[ 3 , 0 ] = "3";
Data[ 3 , 1 ] = "D";
Data[ 3 , 2 ] = "1";
Data[ 3 , 3 ] = "1100";
Data[ 4 , 0 ] = "4";
Data[ 4 , 1 ] = "E";
Data[ 4 , 2 ] = "6";
Data[ 4 , 3 ] = "6700";
return Data;
}
//背包算法
private int[] GetKnapsack( List<Fruit> list )
{
int max= int .Parse (txtMax.Text);//最大重量
int[] value = new int[ max+1 ];
int[] item = new int[ max+1 ];
//
for ( int i = 0 ; i < Num ; i++ )
{
for ( int j = list[ i ].Weight ; j < max+1 ; j++ )
{
int p = j - list[ i ].Weight;
int newValue =(int) list[ i ].Price + value[p];
if ( newValue > value[ j ] )
{
value[ j ] = newValue;
item[ j ] = i;
}
}
}
return value;
}
