Categories
- 4th semester (27)
- 5th semester (3)
- ADA (13)
- Assembly Level Language (12)
- BE (45)
- C Language Programming (5)
- C language (20)
- C++ Language (5)
- CCP Lab programing (3)
- Computer Programming Lab (3)
- DAA Lab Programming (13)
- Data Structure and C++ laboratory Program (6)
- Data Structure and C++ labotary Program (5)
- Design and Analysis of algorithm (14)
- First Year (5)
- MASM (12)
- Microprocessor (12)
- Microprocessor lab program (12)
- System Software & OS Laboratory (5)
- Unix program (4)
- bachelor of engineering (30)
- basic (1)
- basic mathematics (2)
- beginners (10)
- c++ program (9)
- calculations (7)
- computer science (30)
- downloadable (5)
- engineering syllabus (4)
- simple program (6)
Trend Posts
Blogger news
Author
Followers
Showing posts with label Knapsack Dynamic Program. Show all posts
Showing posts with label Knapsack Dynamic Program. Show all posts
Monday, July 21, 2014
/*Implement 0/1 Knapsack problem using DynamicProgramming.*/
#include<stdio.h>
#include<stdlib.h>
int v[100][100],w[100],p[100],x[100],m,n;
void knapsack();
void optimal();
int max(int,int);
void main()
{
int i,j;
printf("\nEnter the number of items:\n");
scanf("%d",&n);
printf("\nEnter the maximum capacity of the bag\n");
scanf("%d",&m);
printf("\nEnter the weight of each item\n");
for(i=1;i<=n;i++)
scanf("%d",&w[i]);
printf("\nEnter the profit of each item:\n");
for(i=1;i<=n;i++)
scanf("%d",&p[i]);
printf("\nITEMS\t\tWEIGHT\t\tPROFIT\n");
for(i=1;i<=n;i++)
printf("%d\t\t%d\t\t%d\n",i,w[i],p[i]);
printf("\n");
knapsack();
optimal();
}
void knapsack()
{
int i,j;
for(i=0;i<=n;i++)
{
for(j=0;j<=m;j++)
{
if(i==0||j==0)
v[i][j]=0;
else if(w[i]>j)
v[i][j]=v[i-1][j];
else
v[i][j]=max(v[i-1][j],p[i]+v[i-1][j-w[i]]);
}
}
printf("\nMaximum profit is:%d",v[n][m]);
}
void optimal()
{
int i,j;
i=n;j=m;
while(i!=0&&j!=0)
{
if(v[i][j]!=v[i-1][j])
{
x[i]=1;
j=j-w[i];
}
i=i-1;
}
printf("\nThe items possible are:\n");
for(i=1;i<=n;i++)
if(x[i]==1)
printf("%d\t",i);
}
int max(int a,int b)
{
if(a<b)
return b;
else
return a;
}
Subscribe to:
Posts (Atom)