- POJ 2388 - Who’s in the Middle
- Time: 1000MS
- Memory: 65536K
- 难度: 初级
- 分类: 排序
问题描述
给定n个数,输出中间值(注意不是求平均)。
解题思路
可以用 sort
,干脆快捷,但是注意排序起止位置。
也可以用 quicksort
,(最好用随机快排,尝试一下 srand
和 rand
) 。
没什么要注意的水题,不过真要注意的话,就不要用冒泡、插入、选择排序之类的O(n^2)算法,1W个数铁定超时。
测试数据
AC 源码
//Memory Time
//292K 47MS
#include<iostream>
#include<iomanip>
#include<algorithm>
using namespace std;
int main(void)
{
int n;
while(cin>>n)
{
int* milk=new int[n+1];
for(int i=1;i<=n;i++)
cin>>milk[i];
sort(milk+1,milk+n+1);
cout<<milk[n/2+1]<<endl;
delete milk;
}
return 0;
}