Skip to content

Commit

Permalink
Knapsack Code added
Browse files Browse the repository at this point in the history
  • Loading branch information
juhig committed Oct 19, 2020
1 parent f1af0f4 commit 2ae9e68
Showing 1 changed file with 46 additions and 0 deletions.
46 changes: 46 additions & 0 deletions Java_Programs_for_beginners/Knapsack.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package DP;

public class knapsack {
public static int knap(int wt[], int price[], int cap, int vi)

{

if (vi == wt.length)
return 0;
int excluded = knap(wt, price, cap, vi + 1);
int include = 0;
if (cap >= wt[vi])
include = knap(wt, price, cap - wt[vi], vi + 1) + price[vi];
return Math.max(excluded, include);

}

public static int knapTD(int wt[], int price[], int cap, int vi, int strg[][])

{
if (strg[vi][cap] != 0)
return strg[vi][cap];
if (vi == wt.length)
return 0;
int excluded = knap(wt, price, cap, vi + 1);
int include = 0;
int ans = 0;
if (cap >= wt[vi])
include = knapTD(wt, price, cap - wt[vi], vi + 1, strg) + price[vi];

ans = Math.max(excluded, include);
strg[vi][cap] = ans;
return ans;

}

public static void main(String[] args) {
// TODO Auto-generated method stub
int wt[] = { 1, 3, 4, 5 };
int p[] = { 1, 4, 5, 7 };
System.out.println(knap(wt, p, 9, 0));
System.out.println(knapTD(wt, p, 9, 0, new int[wt.length + 1][10]));

}

}

0 comments on commit 2ae9e68

Please sign in to comment.