Answered step by step
Verified Expert Solution
Link Copied!
Question
1 Approved Answer

Translate into Java // C/C++ program to solve fractional Knapsack Problem #include using namespace std; // Stucture for Item which store weight and corresponding //

Translate into Java

// C/C++ program to solve fractional Knapsack Problem

#include

using namespace std;

// Stucture for Item which store weight and corresponding

// value of Item

struct Item

{

int value, weight;

// Constructor

Item(int value, int weight) : value(value), weight(weight)

{}

};

// Comparison function to sort Item according to val/weight ratio

bool cmp(struct Item a, struct Item b)

{

double r1 = (double)a.value / a.weight;

double r2 = (double)b.value / b.weight;

return r1 > r2;

}

// Main greedy function to solve problem

double fractionalKnapsack(int W, struct Item arr[], int n)

{

// sorting Item on basis of ration

sort(arr, arr + n, cmp);

// Uncomment to see new order of Items with their ratio

/*

for (int i = 0; i < n; i++)

{

cout << arr[i].value << " " << arr[i].weight << " : "

<< ((double)arr[i].value / arr[i].weight) << endl;

}

*/

int curWeight = 0; // Current weight in knapsack

double finalvalue = 0.0; // Result (value in Knapsack)

// Looping through all Items

for (int i = 0; i < n; i++)

{

// If adding Item won't overflow, add it completely

if (curWeight + arr[i].weight <= W)

{

curWeight += arr[i].weight;

finalvalue += arr[i].value;

}

// If we can't add current Item, add fractional part of it

else

{

int remain = W - curWeight;

finalvalue += arr[i].value * ((double) remain / arr[i].weight);

break;

}

}

// Returning final value

return finalvalue;

}

// driver program to test above function

int main()

{

int W = 50; // Weight of knapsack

Item arr[] = {{60, 10}, {100, 20}, {120, 30}};

int n = sizeof(arr) / sizeof(arr[0]);

cout << "Maximum value we can obtain = "

<< fractionalKnapsack(W, arr, n);

return 0;

}

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image
Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image_2

Step: 3

blur-text-image_3

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Oracle Databases On The Web Learn To Create Web Pages That Interface With Database Engines

Authors: Robert Papaj, Donald Burleson

11th Edition

1576100995, 978-1576100998

More Books

Students explore these related Databases questions