knapsack.java

来自「背包问题(java)一个用JAVA 实现的背包问题」· Java 代码 · 共 2,699 行 · 第 1/5 页

JAVA
2,699
字号
package com.laure.suanfa;
public class Knapsack{
	public static void greedyKnapsack(int[] p,int[] w,int m,int[] x){
		int i,n;
		int cu;//背包剩余容量
		n=x.length;
		for(i=0;i<n;i++)x[i]=0;
		cu=m;
		for(i=0;i<n;i++){
			if(w[i]>cu) return;
			else{
				x[i]=1;
				cu=cu-w[i];
			}
		}
		if(i<n) x[i]=cu/w[i];
	}
	public static void main(String[] args){

		int[] p={5,4,3,2,1};
		int[] w={1,2,3,4,5};
		System.out.println("请输入P[]数组:");
		System.out.println("5,4,3,2,1");
		System.out.println("请输入W[]数组:");
		System.out.println("1,2,3,4,5");
		System.out.println("请输入M:");
		System.out.println("7");
		int m=7;
		int[] x=new int[p.length];
		greedyKnapsack(p,w,m,x);
		System.out.println("X接向量为:");
		for(int i=0;i<x.length;i++)System.out.print(" "+x[i]);
	}
}
   package com.laure.suanfa;
public class Knapsack{
	public static void greedyKnapsack(int[] p,int[] w,int m,int[] x){
		int i,n;
		int cu;//背包剩余容量
		n=x.length;
		for(i=0;i<n;i++)x[i]=0;
		cu=m;
		for(i=0;i<n;i++){
			if(w[i]>cu) return;
			else{
				x[i]=1;
				cu=cu-w[i];
			}
		}
		if(i<n) x[i]=cu/w[i];
	}
	public static void main(String[] args){

		int[] p={5,4,3,2,1};
		int[] w={1,2,3,4,5};
		System.out.println("请输入P[]数组:");
		System.out.println("5,4,3,2,1");
		System.out.println("请输入W[]数组:");
		System.out.println("1,2,3,4,5");
		System.out.println("请输入M:");
		System.out.println("7");
		int m=7;
		int[] x=new int[p.length];
		greedyKnapsack(p,w,m,x);
		System.out.println("X接向量为:");
		for(int i=0;i<x.length;i++)System.out.print(" "+x[i]);
	}
}
   
package com.laure.suanfa;
public class Knapsack{
	public static void greedyKnapsack(int[] p,int[] w,int m,int[] x){
		int i,n;
		int cu;//背包剩余容量
		n=x.length;
		for(i=0;i<n;i++)x[i]=0;
		cu=m;
		for(i=0;i<n;i++){
			if(w[i]>cu) return;
			else{
				x[i]=1;
				cu=cu-w[i];
			}
		}
		if(i<n) x[i]=cu/w[i];
	}
	public static void main(String[] args){

		int[] p={5,4,3,2,1};
		int[] w={1,2,3,4,5};
		System.out.println("请输入P[]数组:");
		System.out.println("5,4,3,2,1");
		System.out.println("请输入W[]数组:");
		System.out.println("1,2,3,4,5");
		System.out.println("请输入M:");
		System.out.println("7");
		int m=7;
		int[] x=new int[p.length];
		greedyKnapsack(p,w,m,x);
		System.out.println("X接向量为:");
		for(int i=0;i<x.length;i++)System.out.print(" "+x[i]);
	}
}
   
package com.laure.suanfa;
public class Knapsack{
	public static void greedyKnapsack(int[] p,int[] w,int m,int[] x){
		int i,n;
		int cu;//背包剩余容量
		n=x.length;
		for(i=0;i<n;i++)x[i]=0;
		cu=m;
		for(i=0;i<n;i++){
			if(w[i]>cu) return;
			else{
				x[i]=1;
				cu=cu-w[i];
			}
		}
		if(i<n) x[i]=cu/w[i];
	}
	public static void main(String[] args){

		int[] p={5,4,3,2,1};
		int[] w={1,2,3,4,5};
		System.out.println("请输入P[]数组:");
		System.out.println("5,4,3,2,1");
		System.out.println("请输入W[]数组:");
		System.out.println("1,2,3,4,5");
		System.out.println("请输入M:");
		System.out.println("7");
		int m=7;
		int[] x=new int[p.length];
		greedyKnapsack(p,w,m,x);
		System.out.println("X接向量为:");
		for(int i=0;i<x.length;i++)System.out.print(" "+x[i]);
	}
}
   
package com.laure.suanfa;
public class Knapsack{
	public static void greedyKnapsack(int[] p,int[] w,int m,int[] x){
		int i,n;
		int cu;//背包剩余容量
		n=x.length;
		for(i=0;i<n;i++)x[i]=0;
		cu=m;
		for(i=0;i<n;i++){
			if(w[i]>cu) return;
			else{
				x[i]=1;
				cu=cu-w[i];
			}
		}
		if(i<n) x[i]=cu/w[i];
	}
	public static void main(String[] args){

		int[] p={5,4,3,2,1};
		int[] w={1,2,3,4,5};
		System.out.println("请输入P[]数组:");
		System.out.println("5,4,3,2,1");
		System.out.println("请输入W[]数组:");
		System.out.println("1,2,3,4,5");
		System.out.println("请输入M:");
		System.out.println("7");
		int m=7;
		int[] x=new int[p.length];
		greedyKnapsack(p,w,m,x);
		System.out.println("X接向量为:");
		for(int i=0;i<x.length;i++)System.out.print(" "+x[i]);
	}
}
   
package com.laure.suanfa;
public class Knapsack{
	public static void greedyKnapsack(int[] p,int[] w,int m,int[] x){
		int i,n;
		int cu;//背包剩余容量
		n=x.length;
		for(i=0;i<n;i++)x[i]=0;
		cu=m;
		for(i=0;i<n;i++){
			if(w[i]>cu) return;
			else{
				x[i]=1;
				cu=cu-w[i];
			}
		}
		if(i<n) x[i]=cu/w[i];
	}
	public static void main(String[] args){

		int[] p={5,4,3,2,1};
		int[] w={1,2,3,4,5};
		System.out.println("请输入P[]数组:");
		System.out.println("5,4,3,2,1");
		System.out.println("请输入W[]数组:");
		System.out.println("1,2,3,4,5");
		System.out.println("请输入M:");
		System.out.println("7");
		int m=7;
		int[] x=new int[p.length];
		greedyKnapsack(p,w,m,x);
		System.out.println("X接向量为:");
		for(int i=0;i<x.length;i++)System.out.print(" "+x[i]);
	}
}
   
package com.laure.suanfa;
public class Knapsack{
	public static void greedyKnapsack(int[] p,int[] w,int m,int[] x){
		int i,n;
		int cu;//背包剩余容量
		n=x.length;
		for(i=0;i<n;i++)x[i]=0;
		cu=m;
		for(i=0;i<n;i++){
			if(w[i]>cu) return;
			else{
				x[i]=1;
				cu=cu-w[i];
			}
		}
		if(i<n) x[i]=cu/w[i];
	}
	public static void main(String[] args){

		int[] p={5,4,3,2,1};
		int[] w={1,2,3,4,5};
		System.out.println("请输入P[]数组:");
		System.out.println("5,4,3,2,1");
		System.out.println("请输入W[]数组:");
		System.out.println("1,2,3,4,5");
		System.out.println("请输入M:");
		System.out.println("7");
		int m=7;
		int[] x=new int[p.length];
		greedyKnapsack(p,w,m,x);
		System.out.println("X接向量为:");
		for(int i=0;i<x.length;i++)System.out.print(" "+x[i]);
	}
}
   
package com.laure.suanfa;
public class Knapsack{
	public static void greedyKnapsack(int[] p,int[] w,int m,int[] x){
		int i,n;
		int cu;//背包剩余容量
		n=x.length;
		for(i=0;i<n;i++)x[i]=0;
		cu=m;
		for(i=0;i<n;i++){
			if(w[i]>cu) return;
			else{
				x[i]=1;
				cu=cu-w[i];
			}
		}
		if(i<n) x[i]=cu/w[i];
	}
	public static void main(String[] args){

		int[] p={5,4,3,2,1};
		int[] w={1,2,3,4,5};
		System.out.println("请输入P[]数组:");
		System.out.println("5,4,3,2,1");
		System.out.println("请输入W[]数组:");
		System.out.println("1,2,3,4,5");
		System.out.println("请输入M:");
		System.out.println("7");
		int m=7;
		int[] x=new int[p.length];
		greedyKnapsack(p,w,m,x);
		System.out.println("X接向量为:");
		for(int i=0;i<x.length;i++)System.out.print(" "+x[i]);
	}
}
   
package com.laure.suanfa;
public class Knapsack{
	public static void greedyKnapsack(int[] p,int[] w,int m,int[] x){
		int i,n;
		int cu;//背包剩余容量
		n=x.length;
		for(i=0;i<n;i++)x[i]=0;
		cu=m;
		for(i=0;i<n;i++){
			if(w[i]>cu) return;
			else{
				x[i]=1;
				cu=cu-w[i];
			}
		}
		if(i<n) x[i]=cu/w[i];
	}
	public static void main(String[] args){

		int[] p={5,4,3,2,1};
		int[] w={1,2,3,4,5};
		System.out.println("请输入P[]数组:");
		System.out.println("5,4,3,2,1");
		System.out.println("请输入W[]数组:");
		System.out.println("1,2,3,4,5");
		System.out.println("请输入M:");
		System.out.println("7");
		int m=7;
		int[] x=new int[p.length];
		greedyKnapsack(p,w,m,x);
		System.out.println("X接向量为:");
		for(int i=0;i<x.length;i++)System.out.print(" "+x[i]);
	}
}
   package com.laure.suanfa;
public class Knapsack{
	public static void greedyKnapsack(int[] p,int[] w,int m,int[] x){
		int i,n;
		int cu;//背包剩余容量
		n=x.length;
		for(i=0;i<n;i++)x[i]=0;
		cu=m;
		for(i=0;i<n;i++){
			if(w[i]>cu) return;
			else{
				x[i]=1;
				cu=cu-w[i];
			}
		}
		if(i<n) x[i]=cu/w[i];
	}
	public static void main(String[] args){

		int[] p={5,4,3,2,1};
		int[] w={1,2,3,4,5};
		System.out.println("请输入P[]数组:");
		System.out.println("5,4,3,2,1");
		System.out.println("请输入W[]数组:");
		System.out.println("1,2,3,4,5");
		System.out.println("请输入M:");
		System.out.println("7");
		int m=7;
		int[] x=new int[p.length];
		greedyKnapsack(p,w,m,x);
		System.out.println("X接向量为:");
		for(int i=0;i<x.length;i++)System.out.print(" "+x[i]);
	}
}
   
package com.laure.suanfa;
public class Knapsack{
	public static void greedyKnapsack(int[] p,int[] w,int m,int[] x){
		int i,n;
		int cu;//背包剩余容量
		n=x.length;
		for(i=0;i<n;i++)x[i]=0;
		cu=m;
		for(i=0;i<n;i++){
			if(w[i]>cu) return;
			else{
				x[i]=1;
				cu=cu-w[i];
			}
		}
		if(i<n) x[i]=cu/w[i];
	}
	public static void main(String[] args){

		int[] p={5,4,3,2,1};
		int[] w={1,2,3,4,5};
		System.out.println("请输入P[]数组:");
		System.out.println("5,4,3,2,1");
		System.out.println("请输入W[]数组:");
		System.out.println("1,2,3,4,5");
		System.out.println("请输入M:");
		System.out.println("7");
		int m=7;
		int[] x=new int[p.length];
		greedyKnapsack(p,w,m,x);
		System.out.println("X接向量为:");
		for(int i=0;i<x.length;i++)System.out.print(" "+x[i]);
	}
}
   
package com.laure.suanfa;
public class Knapsack{
	public static void greedyKnapsack(int[] p,int[] w,int m,int[] x){
		int i,n;
		int cu;//背包剩余容量
		n=x.length;
		for(i=0;i<n;i++)x[i]=0;
		cu=m;
		for(i=0;i<n;i++){
			if(w[i]>cu) return;
			else{
				x[i]=1;
				cu=cu-w[i];
			}
		}
		if(i<n) x[i]=cu/w[i];
	}
	public static void main(String[] args){

		int[] p={5,4,3,2,1};
		int[] w={1,2,3,4,5};
		System.out.println("请输入P[]数组:");
		System.out.println("5,4,3,2,1");
		System.out.println("请输入W[]数组:");
		System.out.println("1,2,3,4,5");
		System.out.println("请输入M:");
		System.out.println("7");
		int m=7;
		int[] x=new int[p.length];
		greedyKnapsack(p,w,m,x);
		System.out.println("X接向量为:");
		for(int i=0;i<x.length;i++)System.out.print(" "+x[i]);
	}
}
   
package com.laure.suanfa;
public class Knapsack{
	public static void greedyKnapsack(int[] p,int[] w,int m,int[] x){
		int i,n;
		int cu;//背包剩余容量
		n=x.length;
		for(i=0;i<n;i++)x[i]=0;
		cu=m;
		for(i=0;i<n;i++){
			if(w[i]>cu) return;
			else{
				x[i]=1;
				cu=cu-w[i];
			}
		}
		if(i<n) x[i]=cu/w[i];
	}
	public static void main(String[] args){

		int[] p={5,4,3,2,1};
		int[] w={1,2,3,4,5};
		System.out.println("请输入P[]数组:");
		System.out.println("5,4,3,2,1");
		System.out.println("请输入W[]数组:");
		System.out.println("1,2,3,4,5");
		System.out.println("请输入M:");
		System.out.println("7");
		int m=7;
		int[] x=new int[p.length];
		greedyKnapsack(p,w,m,x);
		System.out.println("X接向量为:");
		for(int i=0;i<x.length;i++)System.out.print(" "+x[i]);
	}
}
   
package com.laure.suanfa;
public class Knapsack{
	public static void greedyKnapsack(int[] p,int[] w,int m,int[] x){
		int i,n;
		int cu;//背包剩余容量
		n=x.length;
		for(i=0;i<n;i++)x[i]=0;
		cu=m;
		for(i=0;i<n;i++){
			if(w[i]>cu) return;
			else{
				x[i]=1;
				cu=cu-w[i];
			}
		}
		if(i<n) x[i]=cu/w[i];
	}
	public static void main(String[] args){

		int[] p={5,4,3,2,1};
		int[] w={1,2,3,4,5};
		System.out.println("请输入P[]数组:");
		System.out.println("5,4,3,2,1");
		System.out.println("请输入W[]数组:");
		System.out.println("1,2,3,4,5");
		System.out.println("请输入M:");
		System.out.println("7");
		int m=7;
		int[] x=new int[p.length];
		greedyKnapsack(p,w,m,x);
		System.out.println("X接向量为:");
		for(int i=0;i<x.length;i++)System.out.print(" "+x[i]);
	}
}
   
package com.laure.suanfa;
public class Knapsack{
	public static void greedyKnapsack(int[] p,int[] w,int m,int[] x){
		int i,n;
		int cu;//背包剩余容量
		n=x.length;
		for(i=0;i<n;i++)x[i]=0;
		cu=m;
		for(i=0;i<n;i++){
			if(w[i]>cu) return;
			else{
				x[i]=1;
				cu=cu-w[i];
			}
		}
		if(i<n) x[i]=cu/w[i];
	}
	public static void main(String[] args){

		int[] p={5,4,3,2,1};
		int[] w={1,2,3,4,5};
		System.out.println("请输入P[]数组:");
		System.out.println("5,4,3,2,1");
		System.out.println("请输入W[]数组:");
		System.out.println("1,2,3,4,5");
		System.out.println("请输入M:");
		System.out.println("7");
		int m=7;
		int[] x=new int[p.length];
		greedyKnapsack(p,w,m,x);
		System.out.println("X接向量为:");
		for(int i=0;i<x.length;i++)System.out.print(" "+x[i]);
	}
}
   
package com.laure.suanfa;
public class Knapsack{
	public static void greedyKnapsack(int[] p,int[] w,int m,int[] x){
		int i,n;
		int cu;//背包剩余容量
		n=x.length;
		for(i=0;i<n;i++)x[i]=0;
		cu=m;
		for(i=0;i<n;i++){
			if(w[i]>cu) return;
			else{
				x[i]=1;
				cu=cu-w[i];
			}
		}
		if(i<n) x[i]=cu/w[i];
	}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?