This is a Java Program to Implement K Way Merge Algorithm. K Way Merge Algorithm is used to merge K sorted arrays of size N into a single array.
Here is the source code of the Java Program to Implement K Way Merge Algorithm. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.
/** * Java Program to Implement K Way Merge Algorithm **/ import java.util.Scanner; /** Class KWayMerge **/ public class KWayMerge { /** Function to merge arrays **/ private int[] merge(int[][] arr) { int K = arr.length; int N = arr[0].length; /** array to keep track of non considered positions in subarrays **/ int[] curPos = new int[K]; /** final merged array **/ int[] mergedArray = new int[K * N]; int p = 0; while (p < K * N) { int min = Integer.MAX_VALUE; int minPos = -1; /** search for least element **/ for (int i = 0; i < K; i++) { if (curPos[i] < N) { if (arr[i][curPos[i]] < min) { min = arr[i][curPos[i]]; minPos = i; } } } curPos[minPos]++; mergedArray[p++] = min; } return mergedArray; } /** Main method **/ public static void main(String[] args) { Scanner scan = new Scanner( System.in ); System.out.println("K Way Merge Test\n"); /** Accept k and n **/ System.out.println("Enter K and N"); int K = scan.nextInt(); int N = scan.nextInt(); int[][] arr = new int[K][N]; /** Accept all elements **/ System.out.println("Enter "+ K +" sorted arrays of length "+ N); for (int i = 0; i < K; i++) for (int j = 0; j < N; j++) arr[i][j] = scan.nextInt(); KWayMerge kwm = new KWayMerge(); int[] mergedArray = kwm.merge(arr); /** Print merged array **/ System.out.println("\nMerged Array : "); for (int i = 0; i < mergedArray.length; i++) System.out.print(mergedArray[i] +" "); System.out.println(); } }
K Way Merge Test Enter K and N 5 4 Enter 5 sorted arrays of length 4 2 4 6 19 1 20 35 67 3 5 7 11 45 46 47 48 3 9 100 200 Merged Array : 1 2 3 3 4 5 6 7 9 11 19 20 35 45 46 47 48 67 100 200 K Way Merge Test Enter K and N 4 5 Enter 4 sorted arrays of length 5 2 4 6 19 94 2 8 5 19 63 3 5 7 11 13 1 10 25 50 100 Merged Array : 1 2 2 3 4 5 6 7 8 5 10 11 13 19 19 25 50 63 94 100 K Way Merge Test Enter K and N 3 10 Enter 3 sorted arrays of length 10 3 6 9 12 15 18 21 24 27 30 2 5 8 11 14 17 20 23 26 29 1 4 7 10 13 16 19 22 25 28 Merged Array : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Related posts:
Guide to Guava Table
Java Program to Implement Gauss Jordan Elimination
Java Program to Solve Travelling Salesman Problem for Unweighted Graph
Java Program to Implement WeakHashMap API
Java Program to Implement Gale Shapley Algorithm
Spring WebClient vs. RestTemplate
Java Program to Implement the String Search Algorithm for Short Text Sizes
Running Spring Boot Applications With Minikube
What is a POJO Class?
Add Multiple Items to an Java ArrayList
Vấn đề Nhà sản xuất (Producer) – Người tiêu dùng (Consumer) và đồng bộ hóa các luồng trong Java
Java Program to Implement Sorted Vector
Java Program to Compute the Area of a Triangle Using Determinants
Guide to Guava Multimap
SOAP Web service: Upload và Download file sử dụng MTOM trong JAX-WS
The Registration Process With Spring Security
Concurrent Test Execution in Spring 5
Jackson Unmarshalling JSON with Unknown Properties
Hướng dẫn Java Design Pattern – Strategy
Send email with SMTPS (eg. Google GMail)
Java Program to Find the Peak Element of an Array O(n) time (Naive Method)
Java Program to Perform Polygon Containment Test
Jackson vs Gson
Apache Commons Collections Bag
Java Program to Implement ConcurrentHashMap API
Convert a Map to an Array, List or Set in Java
Using JWT with Spring Security OAuth (legacy stack)
Spring Boot - Quick Start
Java Program to Perform Insertion in a BST
Spring Security Authentication Provider
Spring Data JPA @Query
Compact Strings in Java 9