/**
* 寻找两个有序数组的中位数
*/
public class FindMedianSortedArrays {
public static void main(String[] args) {
int[] arr1={1,3,4,5};
int[] arr2={1,2,3,6,9};
System.out.println(findMedianSortedArrays(arr1,arr2));
}
//思路:把两个有序数组合并为一个有序数组,再求中位数
public static double findMedianSortedArrays(int[] nums1, int[] nums2) {
int[] arr=new int[nums1.length+nums2.length];
int index1=0,index2=0;
for(int i=0;i<arr.length;i++){
if(index1<nums1.length&&index2<nums2.length){
arr[i]=nums1[index1]<nums2[index2]?nums1[index1++]:nums2[index2++];
}else if(index1==nums1.length){
arr[i]=nums2[index2++];
}else {
arr[i]=nums1[index1++];
}
}
if(arr.length%2==1){
return (double) arr[arr.length/2];
}
if(arr.length%2==0){
return (double) (arr[arr.length/2]+arr[arr.length/2-1])/2;
}
return 0;
}
}