java 寻找两个有序数组的中位数
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class MedianSortedArrays
{
public static double findMedianSortedArrays(int[] nums1, int[] nums2)
{
List<Integer> list = new ArrayList<Integer>();
for (int i = 0; i < nums1.length; i++)
{
list.add(nums1[i]);
}
for (int i = 0; i < nums2.length; i++)
{
list.add(nums2[i]);
}
Collections.sort(list, new Comparator<Integer>()
{
@Override
public int compare(Integer o1, Integer o2)
{
// 返回值为int类型,大于0表示正序,小于0表示逆序
return o2 - o1;
}
});
Object[] arr = list.toArray();
if (arr.length % 2 == 0)
{
return (Double.valueOf(String.valueOf(arr[arr.length / 2])) + Double
.valueOf(String.valueOf(arr[arr.length / 2 - 1]))) / 2.0;
} else
{
return Double.valueOf(String.valueOf(arr[arr.length / 2]));
}
}
public static void main(String[] args)
{
int[] nums1 = {1, 1};
int[] nums2 = {1,2};
/*int[] nums1 = {1, 3};
int[] nums2 = {2,4};*/
System.out.println(findMedianSortedArrays(nums1, nums2));
}
}