- 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;
} 
                     
                     
                     
                        
                        