From 717d48fd9215d52be3b72705ef44d2a0072cc366 Mon Sep 17 00:00:00 2001 From: sameer2403 <76219383+sameer2403@users.noreply.github.com> Date: Sun, 10 Oct 2021 20:26:50 +0530 Subject: [PATCH] Add files via upload --- Program-28/Bin Packing Problem.cpp | 36 ++++++++++++++++++++++++++++++ Program-28/Readme.md | 18 +++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 Program-28/Bin Packing Problem.cpp create mode 100644 Program-28/Readme.md diff --git a/Program-28/Bin Packing Problem.cpp b/Program-28/Bin Packing Problem.cpp new file mode 100644 index 00000000..8f59d0cb --- /dev/null +++ b/Program-28/Bin Packing Problem.cpp @@ -0,0 +1,36 @@ +// C++ program to find number of bins required using +// next fit algorithm. +#include +using namespace std; + +// Returns number of bins required using next fit +// online algorithm +int nextFit(int weight[], int n, int c) +{ + // Initialize result (Count of bins) and remaining + // capacity in current bin. + int res = 0, bin_rem = c; + + // Place items one by one + for (int i = 0; i < n; i++) { + // If this item can't fit in current bin + if (weight[i] > bin_rem) { + res++; // Use a new bin + bin_rem = c - weight[i]; + } + else + bin_rem -= weight[i]; + } + return res; +} + +// Driver program +int main() +{ + int weight[] = { 2, 5, 4, 7, 1, 3, 8 }; + int c = 10; + int n = sizeof(weight) / sizeof(weight[0]); + cout << "Number of bins required in Next Fit : " + << nextFit(weight, n, c); + return 0; +} diff --git a/Program-28/Readme.md b/Program-28/Readme.md new file mode 100644 index 00000000..33513f47 --- /dev/null +++ b/Program-28/Readme.md @@ -0,0 +1,18 @@ +Given n items of different weights and bins each of capacity c, assign each item to a bin such that number of total used bins is minimized. It may be assumed that all items have weights smaller than bin capacity. + + +Example: +Input: weight[] = {4, 8, 1, 4, 2, 1} + Bin Capacity c = 10 +Output: 2 +We need minimum 2 bins to accommodate all items +First bin contains {4, 4, 2} and second bin {8, 1, 1} + +Input: weight[] = {9, 8, 2, 2, 5, 4} + Bin Capacity c = 10 +Output: 4 +We need minimum 4 bins to accommodate all items. + +Input: weight[] = {2, 5, 4, 7, 1, 3, 8}; + Bin Capacity c = 10 +Output: 3 \ No newline at end of file