多题目

NOIP2015 完善程序 

2.(中位数)给定 n (n 为奇数且小于 1000)个整数,整数的范围在 0〜m (0 < m < 231)  之间,请使用二分

法求这 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;
}

第 1 题 填空

第 2 题 填空

第 3 题 填空

第 4 题 填空

第 5 题 填空

发表评论

登录 后再回复