题目链接:http://poj.org/problem?id=2388
题目大意是说有奇数个母牛,已知每只母牛的产奶量,求产奶量的中位数
这几天刷POJ刷伤了,在刷题计划里找几个水题缓解一下心情。 = =,记得在寒假和山建比赛的时候这个还做过签到题
这个题就是一个排序加取中位数,本来就是奇数只奶牛,这样连分类讨论都省了。
本来想一个sort水过去,不过想想好久没自己写快排函数了,为了水出水平,就捎带复习一下快排函数吧。
1Y的感觉就是好= =、
代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int num[1000000];
int qp (int *lif,int *rig)
{
if (lif >= rig)
return 0;
int *l = lif,*r = rig;
int w = *l;
while (l < r)
{
while (l < r && *r >= w)
r--;
*l = *r;
while (l < r && *l <= w)
l++;
*r = *l;
}
*l = w;
qp(lif,r - 1);
qp(l + 1,rig);
}
int main()
{
int n;
while (~scanf ("%d",&n))
{
for (int i = 0;i < n;i++)
scanf ("%d",&num[i]);
qp(num,&num[n - 1]);
printf ("%d\n",num[(int)(n / 2)]);
}
return 0;
}