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:
Guide to the Synchronized Keyword in Java
Java Program to Implement CountMinSketch
Guide to java.util.concurrent.BlockingQueue
New Features in Java 9
Remove the First Element from a List
Java Program to Implement Meldable Heap
Converting Between Byte Arrays and Hexadecimal Strings in Java
Spring Security Registration – Resend Verification Email
Spring REST API + OAuth2 + Angular (using the Spring Security OAuth legacy stack)
Java Program to Check whether Graph is Biconnected
Predicate trong Java 8
Spring Boot - Enabling HTTPS
Request a Delivery / Read Receipt in Javamail
Java Program to Implement Sieve Of Atkin
Java Program to Use Dynamic Programming to Solve Approximate String Matching
JUnit 5 @Test Annotation
New in Spring Security OAuth2 – Verify Claims
Java toString() Method
How to Kill a Java Thread
Spring Boot - Securing Web Applications
Java Program to Find the Vertex Connectivity of a Graph
Java Program to Perform String Matching Using String Library
LinkedList trong java
Removing all Nulls from a List in Java
Spring Cloud Bus
A Comparison Between Spring and Spring Boot
Uploading MultipartFile with Spring RestTemplate
JUnit 5 for Kotlin Developers
Java Program to Implement Pollard Rho Algorithm
Guide to CountDownLatch in Java
Java Program to Implement LinkedHashMap API
Java Program to Find Path Between Two Nodes in a Graph