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:
Mapping a Dynamic JSON Object with Jackson
Truyền giá trị và tham chiếu trong java
Spring NoSuchBeanDefinitionException
Java Program to Check Whether a Given Point is in a Given Polygon
Java Program to Implement wheel Sieve to Generate Prime Numbers Between Given Range
Java Optional as Return Type
XML Serialization and Deserialization with Jackson
Java Program to Perform Naive String Matching
Java Program to Implement HashMap API
Spring Boot - Batch Service
Merging Streams in Java
Introduction to Spring Data JDBC
Java Program to do a Breadth First Search/Traversal on a graph non-recursively
Java Program to Implement Heap Sort Using Library Functions
Java Program to Implement Treap
Request Method Not Supported (405) in Spring
Java Program to Implement Booth Algorithm
Java Program to Implement Circular Singly Linked List
An Intro to Spring Cloud Vault
Getting a File’s Mime Type in Java
Object cloning trong java
Java – Random Long, Float, Integer and Double
Java Program to Perform Complex Number Multiplication
Pagination and Sorting using Spring Data JPA
Vector trong Java
A Guide to the Java LinkedList
Introduction to Spring Data REST
Spring Data Java 8 Support
Predicate trong Java 8
Creating a Custom Starter with Spring Boot
New Features in Java 9
Case-Insensitive String Matching in Java