题目
答案
分治法版本
#include<iostream>
using namespace std;
int SearchMid(int a[],int b[],int n)
{
int s1=0,e1=n-1,s2=0,e2=n-1;
int mid1,mid2;
while(s1<e1&&s2<e2)
{
mid1=(s1+e1)/2;
mid2=(s2+e2)/2;
if(a[mid1]==b[mid2]) return a[mid1];
else if(a[mid1]<b[mid2])
{
if((s1+e1)%2==0) s1=mid1;
else s1=mid1+1;
e2=mid2;
}
else
{
if((s2+e2)%2==0) s2=mid2;
else s2=mid2+1;
e1=mid1;
}
}
if(a[s1]<b[s2]) return a[s1];
else return b[s2];
}
int main()
{
int n;
cin>>n;
int a[n],b[n],i;
for(i=0;i<n;i++)
cin>>a[i];
for(i=0;i<n;i++)
cin>>b[i];
cout<<SearchMid(a,b,n);
}
其它版本(sort函数)
https://blog.csdn.net/ljhsq/article/details/115385599