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:
Lấy ngày giờ hiện tại trong Java
Java Program to Remove the Edges in a Given Cyclic Graph such that its Linear Extension can be Found
Spring Boot Change Context Path
Simultaneous Spring WebClient Calls
Java Program to Implement Quick Sort Using Randomization
Java Program to Create a Balanced Binary Tree of the Incoming Data
Java Program to Implement Binary Search Tree
String Initialization in Java
Java Program to Implement the Hungarian Algorithm for Bipartite Matching
RestTemplate Post Request with JSON
Java Program to Implement Nth Root Algorithm
Introduction to Liquibase Rollback
Hướng dẫn Java Design Pattern – Object Pool
Spring Cloud AWS – EC2
Java Program to implement Priority Queue
Java Program to Find Nearest Neighbor for Static Data Set
Java Program to Implement Traveling Salesman Problem using Nearest neighbour Algorithm
“Stream has already been operated upon or closed” Exception in Java
Guide to Dynamic Tests in Junit 5
Composition, Aggregation, and Association in Java
HashSet trong Java hoạt động như thế nào?
Java Program to Implement CopyOnWriteArrayList API
Giới thiệu Google Guice – Binding
Java Program to Implement Johnson’s Algorithm
Java Program to Perform Polygon Containment Test
Jackson – Bidirectional Relationships
Check If a File or Directory Exists in Java
Guide to Java 8 groupingBy Collector
Spring Boot Tutorial – Bootstrap a Simple Application
Validations for Enum Types
Sao chép các phần tử của một mảng sang mảng khác như thế nào?
Vector trong Java