POJ 2388 - Who's in the Middle


问题描述

给定n个数,输出中间值(注意不是求平均)。

解题思路

可以用 sort,干脆快捷,但是注意排序起止位置。

也可以用 quicksort,(最好用随机快排,尝试一下 srandrand) 。

没什么要注意的水题,不过真要注意的话,就不要用冒泡、插入、选择排序之类的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;
}

相关资料


文章作者: EXP
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 EXP !
 上一篇
C++ 的六种常用输入 C++ 的六种常用输入
cin用法1: 最基本,也是最常用的用法,输入一个数字或字符(不接受空字符作为字符输入,当输入字符为空字符时,会不断重复要求输入,直至输入字符非空后,通过回车结束输入): #include <iostream> using std::
2011-05-13
下一篇 
POJ 1836 - Alignment POJ 1836 - Alignment
POJ 1836 - Alignment Time: 1000MS Memory: 30000K 难度: 初级 分类: 动态规划 问题描述这是 POJ2533 的扩展题。 题意不难,令到原队列的最少士兵出列后,使得新队列任意一个士兵都能
2011-05-10
  目录