对两个长度为n的升序序列A和B的元素按由小到大的顺序依次访问,这里访问的
含义只是比较序列中两个元素的大小,并不实现两个序列的合并,因此空间复杂度为 O(1)。按照
上述规则访问到第n个元素时,这个元素即为两个序列A和B的中位数。
int middle(int a[],int b[],int n)
{
int i,j,k;
k=1;i=0;j=0;
while(k!=n)
{
if(a[i]>b[j] &&j<n)
{
j++;
k++;
}
else if(a[i]<=b[j]&&i<n)
{
i++;
k++;
}
}
if(a[i]<b[j])
{
return a[i];
}
else
{
return b[j];
}
}
时间复杂度n 空间复杂度1