首页 > 试题广场 >

(中位数)给定 n(n 为奇数且小于 1000)个整数,整数

[填空题]
(中位数)给定 n(n 为奇数且小于 1000)个整数,整数的范围在 0~m(0 < m < 231)之间,请使用二分法求这 n 个整数的中位数。所谓中位数,是指将这 n 个数排序之后,排在正中间的数。(第五空 2 分,其余 3 分)
const
  MAXN = 1000;
var
  n, i, lbound, rbound, mid, m, count : longint;
  x : array [1..MAXN] of longint;
begin
  read(n, m);
  for i := 1 to n do
    read(x[i]);
  lbound := 0;
  rbound := m;
  while     1     do
  begin
    mid := (lbound + rbound) div 2;
    2;
    for i := 1 to n do
      if     3     then
        4;
    if count > n div 2 then
      lbound := mid + 1
    else
      5;
  end;
  writeln(rbound);
end. 

这道题你会答吗?花几分钟告诉大家答案吧!