#NOIP2015J1Q34. [NOIP 2015 普及组初赛] 第 34 题
[NOIP 2015 普及组初赛] 第 34 题
(中位数) 给定 n(n为奇数且小于 1000)个整数,整数的范围在 0〜m(0 < m < 2 31 )之间,
请使用二分法求这 n个整数的中位数。所谓中位数,是指将这 n个数排序之后, 排在正中间的数。
#include <iostream>
using namespace std;
const int MAXN = 1000;
int n, i, lbound, rbound, mid, m, count;
int x[MAXN];
int main(){
cin >> n >> m;
for (i = 0; i < n; ++i)
cin >> x[i];
lbound=0;
rbound=m;
while (【第1空】) {
mid = (lbound + rbound)/2;
【第2空】;
for(i = 0; i < n; i++)
if (【第3空】)
【第4空】;
if(count > n / 2) lbound = mid + 1;
else
【第5空】;
}
cout << rbound << endl;
return 0;
}
请填写【第3空】。
{{ input(1) }}