Greedy Knapsack
Greedy Knapsack
#include <stdio.h>
float Knapsack(float weight[], float profit[], float ratio[],
float capacity, int n, int isDiscrete)
{
int i;
float totalValue = 0;
if (isDiscrete)
{
for (i = 0; i < n; i++)
if (weight[i] <= capacity)
{
totalValue += profit[i];
capacity -= weight[i];
}
}
else
{
for (i = 0; i < n && weight[i] <= capacity; i++)
{
totalValue += profit[i];
capacity -= weight[i];
}
if (i < n)
totalValue += ratio[i] * capacity;
}
return totalValue;
}
int main()
{
float weight[50], profit[50], ratio[50], temp, capacity;
int n, i, j;
temp = weight[j];
weight[j] = weight[i];
weight[i] = temp;
temp = profit[j];
profit[j] = profit[i];
profit[i] = temp;
}
return 0;
}
OUTPUT: