LeetCode: Median of Two Sorted Arrays
https://leetcode.com/problems/median-of-two-sorted-arrays/solution/
http://www.cnblogs.com/yuzhangcmu/p/4138184.html
http://blog.csdn.net/gao1440156051/article/details/51725845
http://blog.csdn.net/linhuanmars/article/details/19905515
class Solution { public: double findMedianSortedArrays(int A[], int m, int B[], int n) { int size = m + n; if (size & 0x1){ return findKth(A,m,B,n,size/2+1); }else{ double a = findKth(A,m,B,n,size/2); double b = findKth(A,m,B,n,size/2+1); //cout<<a<<" "<<b<<endl; return (a + b)/2; } //return mergeSort(A,m,B,n); } double findKth(int A[], int m, int B[],int n, int k){ if (m > n){ return findKth(B,n,A,m,k); } if (0 == m){ return B[k-1]; } if (1 == k){ return min(A[0],B[0]); } int pa = min(m,k/2); int pb = k - pa; if (A[pa-1] < B[pb-1]){ return findKth(A+pa, m-pa,B,n,k-pa); }else if (A[pa-1] > B[pb-1]){ return findKth(A,m,B+pb,n-pb,k-pb); }else{ return A[pa-1]; } } };