Skip to content

Instantly share code, notes, and snippets.

@rohith2506
Created March 3, 2015 06:22
Show Gist options
  • Save rohith2506/4f64fdd253bf3d530b4d to your computer and use it in GitHub Desktop.
Save rohith2506/4f64fdd253bf3d530b4d to your computer and use it in GitHub Desktop.
Median of two sorted arrays
// Median of two sorted arrays.
// http://www.geeksforgeeks.org/median-of-two-sorted-arrays/
void median(A,B,n){
int m1 = median(A);
int m2 = median(B);
if(n == 0) return ;
if(n == 1) return (A[0] + B[0])/2;
if(n == 2) return max(A[0], B[0]) + min(A[1], B[1])/2;
if(m1 == m2) return m1;
if(m1 < m2){
if(n%2 == 0) return median(A+n/2-1,B,n-n/2+1);
else return median(A+n/2,B,n-n/2);
}
else{
if(n%2 == 0) return median(B+n/2-1,A,n-n/2+1);
else return median(B+n/2,A,n-n/2);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment