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:
Spring Boot - Thymeleaf
HttpClient with SSL
Java Program to Implement Gaussian Elimination Algorithm
Spring MVC Setup with Kotlin
Serialization và Deserialization trong java
Derived Query Methods in Spring Data JPA Repositories
Primitive Type Streams in Java 8
HttpClient 4 Cookbook
How to Define a Spring Boot Filter?
Java Program to Implement Aho-Corasick Algorithm for String Matching
REST Pagination in Spring
Java Program to Implement Kosaraju Algorithm
Java Program to Implement Sieve Of Eratosthenes
Java Program to Find Nearest Neighbor for Static Data Set
A Quick Guide to Spring Cloud Consul
Map Interface trong java
Simple Single Sign-On with Spring Security OAuth2
Jackson – Change Name of Field
Java Program to Find the Edge Connectivity of a Graph
Java Program to Implement Graph Coloring Algorithm
How to Read HTTP Headers in Spring REST Controllers
Hướng dẫn Java Design Pattern – Memento
Spring Boot - Tracing Micro Service Logs
Mệnh đề if-else trong java
Spring Boot - Batch Service
Display Auto-Configuration Report in Spring Boot
Java Program to Find the Mode in a Data Set
Các chương trình minh họa sử dụng Cấu trúc điều khiển trong Java
Java Stream Filter with Lambda Expression
Exploring the Spring Boot TestRestTemplate
Logging in Spring Boot
Hướng dẫn Java Design Pattern – Bridge