用vector,将两组数据存入一个数组,然后排序,直接输出中间位置的数。
可能速度没有《算法笔记》上两个指针快?
这里sort()函数时间复杂度是n*logn,两个指针遍历应该是n1+n2=n。
不过也能全过。
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
int n1, n2;
cin >> n1;
int i;
long int x;
vector<long int>s;
for (i = 0; i < n1; i++)
{
cin >> x;
s.push_back(x);
}
cin >> n2;
for (; i < n1+n2; i++)
{
cin >> x;
s.push_back(x);
}
sort(s.begin(),s.end());
cout << s[s.size() / 2];
system("pause");
return 0;
}