35

问答题 35 /104

2个有序数组,长度为n,查找两个数组整体中值(中值:一组数组中居中的数),复杂度是()?用()方法?

参考答案

时间复杂度O(logn)
方法如下:
(1)取所有数组的最小值和最大值,求出全体的最大值和最小值min max然后取m=(min+max)/2
(2)用m在所有数组中搜索,找到比m小的数的个数n1,若n1大于M*N/2,则mid=(min+mid)/2,否则mid=(mid+max)/2
(3)重复上述搜索一共循环log(max-min)次