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:
Custom Exception trong Java
Java Program to Perform Addition Operation Using Bitwise Operators
Registration – Activate a New Account by Email
Java Program to Solve the 0-1 Knapsack Problem
Java Program to Implement Maximum Length Chain of Pairs
Unsatisfied Dependency in Spring
Remove HTML tags from a file to extract only the TEXT
Java – Convert File to InputStream
So sánh Array và ArrayList trong Java
Java Program to Describe the Representation of Graph using Adjacency List
Map to String Conversion in Java
Java Program to Find the Peak Element of an Array O(n) time (Naive Method)
Intersection of Two Lists in Java
Removing all Nulls from a List in Java
Creating a Web Application with Spring 5
Spring Boot Annotations
Send email with SMTPS (eg. Google GMail)
Guide to Guava Multimap
Java Program to Implement Segment Tree
Debugging Reactive Streams in Java
Java Program to Construct K-D Tree for 2 Dimensional Data
Spring Data MongoDB – Indexes, Annotations and Converters
Hướng dẫn Java Design Pattern – Template Method
A Guide to HashSet in Java
Reading an HTTP Response Body as a String in Java
Introduction to Spring Cloud Stream
The SpringJUnitConfig and SpringJUnitWebConfig Annotations in Spring 5
A Guide To UDP In Java
Servlet 3 Async Support with Spring MVC and Spring Security
Refactoring Design Pattern với tính năng mới trong Java 8
@DynamicUpdate with Spring Data JPA
Java Program to Compute the Area of a Triangle Using Determinants