This is a Java Program to find median of two sorted arrays using binary search approach. In probability theory and statistics, a median is described as the number separating the higher half of a sample, a population, or a probability distribution, from the lower half. The median of a finite list of numbers can be found by arranging all the numbers from lowest value to highest value and picking the middle one. However size of both arrays must be equal. The time complexity of the following program is O (log n).
Here is the source code of the Java program to find median of two sorted arrays. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.
/*
* Java Program to Find the Median of two Sorted arrays using
* Binary Search Approach
*/
import java.util.Scanner;
public class MedianOfTwoSortedArrays
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
System.out.println("Enter number of elements in arrays");
int N = scan.nextInt();
int[] arr1 = new int[ N ];
int[] arr2 = new int[ N ];
System.out.println("Enter "+ N +" elements of array 1");
for (int i = 0; i < N; i++)
arr1[i] = scan.nextInt();
System.out.println("Enter "+ N +" elements of array 2");
for (int i = 0; i < N; i++)
arr2[i] = scan.nextInt();
int med = median(arr1, arr2);
System.out.println("Median = "+ med);
}
public static int median(int[] arr1, int[] arr2)
{
int N = arr1.length;
return median(arr1, 0, N -1 , arr2, 0, N - 1);
}
public static int median(int[] arr1, int l1, int h1, int[] arr2, int l2, int h2)
{
int mid1 = (h1 + l1 ) / 2;
int mid2 = (h2 + l2 ) / 2;
if (h1 - l1 == 1)
return (Math.max(arr1[l1] , arr2[l2]) + Math.min(arr1[h1] , arr2[h2]))/2;
else if (arr1[mid1] > arr2[mid2])
return median(arr1, l1, mid1 , arr2, mid2 , h2);
else
return median(arr1, mid1 , h1, arr2, l2 , mid2 );
}
}
Enter number of elements in arrays 5 Enter 5 elements of array 1 1 12 15 26 38 Enter 5 elements of array 2 2 13 17 30 45 Median = 16
Related posts:
Extract network card address
How to Use if/else Logic in Java 8 Streams
Java Program to Check if a Given Set of Three Points Lie on a Single Line or Not
Spring 5 Testing with @EnabledIf Annotation
How to Find an Element in a List with Java
Guide to the Volatile Keyword in Java
Spring Boot - Tracing Micro Service Logs
Java Program to Perform String Matching Using String Library
Giới thiệu Google Guice – Injection, Scope
Java Program to Generate N Number of Passwords of Length M Each
The Difference Between Collection.stream().forEach() and Collection.forEach()
Java Program to Search for an Element in a Binary Search Tree
Spring Boot - Thymeleaf
Extra Login Fields with Spring Security
Using a Spring Cloud App Starter
Adding a Newline Character to a String in Java
Logging in Spring Boot
Bootstrap a Web Application with Spring 5
Java Optional as Return Type
Java 14 Record Keyword
Create a Custom Auto-Configuration with Spring Boot
Reactive WebSockets with Spring 5
A Guide to Spring Cloud Netflix – Hystrix
How to Define a Spring Boot Filter?
Testing an OAuth Secured API with Spring MVC
Custom JUnit 4 Test Runners
Java Program to Use Dynamic Programming to Solve Approximate String Matching
Java Program to Find Number of Spanning Trees in a Complete Bipartite Graph
Giới thiệu JDBC Connection Pool
Spring MVC + Thymeleaf 3.0: New Features
Refactoring Design Pattern với tính năng mới trong Java 8
Spring @RequestParam Annotation