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:
Converting between an Array and a List in Java
Quick Guide to @RestClientTest in Spring Boot
Java Program to Implement Trie
Spring RequestMapping
Java Program to Implement Min Heap
Spring Security Custom AuthenticationFailureHandler
Converting Iterator to List
A Quick Guide to Spring MVC Matrix Variables
Java Program to Implement Bloom Filter
Java Program to Implement Sorted Circular Doubly Linked List
Java Program to Use rand and srand Functions
Java Program to Find Maximum Element in an Array using Binary Search
Disable DNS caching
Java Program to Implement Suffix Tree
Java Program to Implement Pagoda
Getting Started with GraphQL and Spring Boot
Logout in an OAuth Secured Application
Java Program to Find Hamiltonian Cycle in an UnWeighted Graph
Java Program to add two large numbers using Linked List
New Features in Java 14
Zipping Collections in Java
Explain about URL and HTTPS protocol
Guide to Java 8 groupingBy Collector
Spring Webflux with Kotlin
Introduction to Apache Commons Text
Java Program to Implement Euclid GCD Algorithm
Từ khóa static và final trong java
Guide to @JsonFormat in Jackson
Annotation trong Java 8
Java Program to Find Second Smallest of n Elements with Given Complexity Constraint
Default Password Encoder in Spring Security 5
Java Program to Check if a Given Binary Tree is an AVL Tree or Not