您的位置:首页 > 其它

背包问题 算法实现

2015-04-26 13:10 309 查看
动态规划算法

package algorithm;

public class T7_21 {
public static void main(String[] args){
int s[] = {2,3,5,6};
int v[] = {3,4,5,7};
int C =11;

System.out.println(big(s,v,C));
}

public static int big(int[] s,int [] v,int C){
int L_s = s.length;
int V[][] = new int[100][100];
for(int i =0;i<=L_s;i++){
V[i][0] = 0;
}
for(int j =0;j<=C;j++){
V[0][j] = 0;
}
for(int i =1;i<=L_s;i++){
for(int j =1;j<=C;j++){
V[i][j] = V[i-1][j];
if(s[i-1]<=j){
V[i][j] = V[i][j]>(V[i-1][j-s[i-1]]+v[i-1])?V[i][j]:(V[i-1][j-s[i-1]]+v[i-1]);
}
}
}
for(int i =0;i<=L_s;i++){
for(int j = 0;j<=C;j++){
System.out.printf("%3d",V[i][j]);}
System.out.println();
}
System.out.print("          背包的最大价值为:");
return V[L_s][C];
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: