两个有序数组求中位数

package com.li.test;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Locale;public class Mytest {public static int findMedian(int[] data1, int start1, int end1,int[] data2, int start2, int end2) {if ((end1 - start1 == 1 && end2 - start2 == 2)) {System.out.println("data1偶数,data2奇数");return getMedian(data1[start1], data1[end1],data2[(start2 + end2) / 2]);}if ((end1 - start1 == 2 && end2 - start2 == 1)) {System.out.println("data1奇数,data2偶数");return getMedian(data2[start2], data2[end2],data1[(start1 + end1) / 2]);}if ((end1 - start1 == 2 && end2 - start2 == 2)) {System.out.println("都是奇数");}if (end1 - start1 == 1 && end2 - start2 == 1) {System.out.println("都是偶数");return getMedian(data1[start1], data1[end1], data2[start2],data2[end2]);}int index1 = (start1 + end1) / 2;int index2 = (start2 + end2) / 2;if (data1[index1] < data2[index2]) {return findMedian(data1, index1, end1, data2, start2, index2);} else if (data1[index1] < data2[index2]) {return findMedian(data1, start1, index1, data2, index2, end2);} else {return data1[index1];}}public static int getMedian(int a1, int a2, int a3, int a4) {if (!(a1 < a2) || !(a3 < a4)) {throw new IllegalArgumentException();}System.out.println(a1);System.out.println(a2);System.out.println(a3);System.out.println(a4);return -1;}public static int getMedian(int a1, int a2, int a3) {if (a1 < a2) {if (a3 < a1) {return a1;} else {if (a2 > a3) {return a3;} else {return a2;}}} else {if (a3 > a1) {return a1;} else {if (a2 > a3) {return a2;} else {return a3;}}}}public static void main(String[] args) {// TODO Auto-generated method stubint[] data1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };int[] data2 = { 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 };int result = Mytest.findMedian(data1, 0, data1.length - 1, data2, 0,data2.length - 1);System.out.println(result);}}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值