考点:中值
方法一:排序,再取;时间复杂度较高
#include<bits/stdc++.h>
using namespace std;
const int MAXSIZE=101;
int main() {
int n;
while(cin>>n) {
vector<int> v;
int x;
for(int i=0; i<n; i++) {
cin>>x;
v.push_back(x);
}
cin>>n;
for(int i=0; i<n; i++) {
cin>>x;
v.push_back(x);
}
sort(v.begin(),v.end());
cout<<v[(v.size()-1)/2]<<endl;
}
return 0;
}
方法二:
分别存储两个序列,从头同步遍历,哪一个元素小,就向前移动一个元素,知道移动的元素个数为(m+n+1)/2,然后输出。
注意移动的过程中不要越界。
#include<bits/stdc++.h>
using namespace std;
const int MAXSIZE=101;
int main() {
int n;
while(cin>>n) {
vector<int> v,v2;
int x;
for(int i=0; i<n; i++) {