
对两个长度为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(ai>bj &&j<n)
{
j++;
k++;
}
else if(ai<=bj&&i<n)
{
i++;
k++;
}
}
if(ai<bj)
{
return ai;
}
else
{
return bj;
}
}
时间复杂度n 空间复杂度1