0% found this document useful (0 votes)
5 views

knapsack greedy approach code

Knap grees Dy ap

Uploaded by

amanyad7071
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views

knapsack greedy approach code

Knap grees Dy ap

Uploaded by

amanyad7071
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

#include <stdio.

h>

void main()

{
int capacity, no_items, cur_weight, item;
int used[10];
float total_profit;
int i;

int weight[10];
int value[10];

printf("Enter the capacity of knapsack:\n");


scanf("%d", &capacity);

printf("Enter the number of items:\n");


scanf("%d", &no_items);

printf("Enter the weight and value of %d item:\n", no_items);

for (i = 0; i < no_items; i++)


{
printf("Weight[%d]:\t", i);
scanf("%d", &weight[i]);
printf("Value[%d]:\t", i);

scanf("%d", &value[i]);
}

for (i = 0; i < no_items; ++i)


used[i] = 0;
cur_weight = capacity;
while (cur_weight > 0)
{

item = -1;
for (i = 0; i < no_items; ++i)
if ((used[i] == 0) &&
((item == -1) || ((float) value[i] / weight[i] > (float) value[item] / weight[item])))
item = i;

used[item] = 1;
cur_weight -= weight[item];
total_profit += value[item];
if (cur_weight >= 0)

printf("Added object %d (%d Rs., %dKg) completely in the bag. Space left: %d.\n",
item + 1, value[item], weight[item], cur_weight);

else
{
int item_percent = (int) ((1 + (float) cur_weight / weight[item]) * 100);
printf("Added %d%% (%d Rs., %dKg) of object %d in the bag.\n", item_percent,
value[item], weight[item], item + 1);
total_profit -= value[item];

total_profit += (1 + (float)cur_weight / weight[item]) * value[item];


}
}

printf("Filled the bag with objects worth %.2f Rs.\n", total_profit);

You might also like