QQ扫一扫联系
完善程序:
(中位数 median) 给定 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 (①) { mid = (lbound + rbound) / 2; ②; for (i = 0; i < n; i++) if (③) ④; if (count > n / 2) lbound = mid + 1; else ⑤; cout << mid << " " << lbound << " " << rbound << " " << count << endl; } cout << rbound << endl; return (0); }
第一空(3分):___________________
第二空(3分):___________________
第三空(3分):___________________
第四空(3分):___________________
第五空(2分):___________________