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 @JsonFormat in Jackson
Java Program to Implement Vector API
Java Program to Implement Stack
Test a REST API with Java
Java – Write a Reader to File
Introduction to Spring Cloud Netflix – Eureka
Từ khóa throw và throws trong Java
Generating Random Dates in Java
Display Auto-Configuration Report in Spring Boot
Java Program to Check Cycle in a Graph using Graph traversal
Remove the First Element from a List
The Registration API becomes RESTful
Spring Boot - Scheduling
Giới thiệu HATEOAS
Guava – Join and Split Collections
Summing Numbers with Java Streams
Lớp HashMap trong Java
Hướng dẫn Java Design Pattern – Service Locator
Set Interface trong Java
HttpClient Connection Management
Java Program to Generate Random Numbers Using Multiply with Carry Method
Hamcrest Collections Cookbook
Java Program to Implement vector
Java Program to Generate Random Partition out of a Given Set of Numbers or Characters
Interface trong Java 8 – Default method và Static method
Spring Boot - Web Socket
Chuyển đổi giữa các kiểu dữ liệu trong Java
Custom HTTP Header with the HttpClient
Guide to Apache Commons CircularFifoQueue
Working with Kotlin and JPA
Guide to java.util.concurrent.Future
Java Program to Perform Left Rotation on a Binary Search Tree