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
Blog Archive
-
▼
2014
(37)
-
▼
July
(20)
- Unix Child Execution Program|System Software & OS ...
- Program to Multiply two Matrice by Using C Language
- How to Read A Matrix and Display it by Using C Lan...
- Program to Read a String by Using C Language
- Lab Program:DATE|Second Year|Data structure and OO...
- QuickSort Program|Design and Analysis of algorithm...
- Warshall Program|Design and Analysis of algorithms...
- Topological Ordering|Design and Analysis of algori...
- Travaling Salesperson Problem With Optimal Solutio...
- Traveling Sales person in the approximation method...
- Subset Program|Design and Analysis of algorithms|4...
- Dijkstra's Algorithm |Design and Analysis of algor...
- Floyd's Algorithm|Design and Analysis of algorithm...
- DFS Method Program|Design and Analysis of algorith...
- BFS Method Program|Design and Analysis of algorith...
- Kruskal's Algorithm|Design and Analysis of algorit...
- Prim's Algorithm|Design and Analysis of algorithms...
- Knapsack Dynamic Program|Design and Analysis of al...
- N Queen's Problem Program|Design and Analysis of a...
- Mergesort Program|Design and Analysis of Algorithm...
-
▼
July
(20)
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:
Post Comments (Atom)
0 comments:
Post a Comment
You are very Important to Us...
STAY TUNE...