This is a Java Program to implement First fit Decreasing Bin Packing algorithm. The First Fit Decreasing (FFD) strategy, operates by first sorting the items to be inserted in decreasing order by their sizes, and then inserting each item into the first bin in the list with sufficient remaining space.
Here is the source code of the Java Program to Implement First Fit Decreasing for 1-D Objects and M Bins. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.
//This is a java program to implement first fit decreasing for 1D objects using M bins import java.util.Scanner; public class First_Fit_Decreasing_Bin_Packing { public static void main(String args[]) { System.out .println("BIN - PACKING Algorithm 1D Objects(First Fit Decreasing)"); System.out.println("Enter the number of items in Set: "); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); System.out.println("Enter " + n + " items:"); int[] a = new int[n]; for (int i = 0; i < n; i++) a[i] = sc.nextInt(); System.out.println("Enter the bin size: "); int size = sc.nextInt(); int[] sequence = sort(a); binPacking(sequence, size, n); sc.close(); } public static void binPacking(int[] a, int size, int n) { int binCount = 0; int[] binValues = new int[n]; for (int i = 0; i < binValues.length; i++) binValues[i] = size; for (int i = 0; i < n; i++) for (int j = 0; j < binValues.length; j++) { if (binValues[j] - a[i] >= 0) { binValues[j] -= a[i]; break; } } for (int i = 0; i < binValues.length; i++) if (binValues[i] != size) binCount++; System.out .println("Number of bins required using first fit decreasing algorithm is:" + binCount); } static int[] sort(int[] sequence) { // Bubble Sort descending order for (int i = 0; i < sequence.length; i++) for (int j = 0; j < sequence.length - 1; j++) if (sequence[j] < sequence[j + 1]) { sequence[j] = sequence[j] + sequence[j + 1]; sequence[j + 1] = sequence[j] - sequence[j + 1]; sequence[j] = sequence[j] - sequence[j + 1]; } return sequence; } }
Output:
$ javac First_Fit_Decreasing_Bin_Packing.java $ java First_Fit_Decreasing_Bin_Packing BIN - PACKING Algorithm for 1D Objects(First Fit Decreasing) Enter the number of items in Set: 9 Enter 9 items: 4 1 2 5 3 2 3 6 3 Enter the bin size: 6 Number of bins required using first fit decreasing algorithm is:5
Related posts:
A Guide to EnumMap
Java Program to Perform Deletion in a BST
Java Program to implement Priority Queue
Create a Custom Exception in Java
Java Program to Implement Self Balancing Binary Search Tree
Sắp xếp trong Java 8
Receive email using IMAP
Java Perform to a 2D FFT Inplace Given a Complex 2D Array
Spring Boot - Flyway Database
Java Program to Implement Attribute API
Java Program to Emulate N Dice Roller
Hướng dẫn Java Design Pattern – Interpreter
Disable DNS caching
Java Program to Find a Good Feedback Vertex Set
Spring Boot - File Handling
Java String to InputStream
Java Program to Implement Sparse Matrix
Java Program to Implement Lloyd’s Algorithm
Convert String to int or Integer in Java
Hướng dẫn sử dụng Java Reflection
Java Program to Check Whether a Weak Link i.e. Articulation Vertex Exists in a Graph
Java Copy Constructor
Spring – Injecting Collections
Apache Commons Collections BidiMap
Custom Thread Pools In Java 8 Parallel Streams
Java Program to Compute Cross Product of Two Vectors
Java 8 – Powerful Comparison with Lambdas
Guide To CompletableFuture
Introduction to Spring Boot CLI
Spring Security Login Page with React
Auditing with JPA, Hibernate, and Spring Data JPA
Java Program to Implement Interval Tree