hrbeuoj 谁是中间的那个

本文介绍了一个简单的排序问题,通过编程找出牧场中产奶量处于中间位置的奶牛。该问题涉及到对一组数据进行排序,并找到位于中间的数据点。适合用于复习和练习排序算法的基本应用。

简单排序水题

谁是中间的那个

TimeLimit: 1 Second   MemoryLimit: 64 Megabyte

Totalsubmit: 1342   Accepted: 219  

Description

一天,农夫乔伊像往常一样来到了他的牧场,他突然对他的奶牛产奶量产生了兴趣。
他想知道产奶量处于中间的那头奶牛的产奶量是多少,处于中间的意思是说,其中有一半牛的产奶量比它多,另一半牛的产奶量比它少。
    这个问题现在交由你来写程序完成!

Input

仅包括一组测试数据,第一行一个正整数N(1<=N<=10,000),接下来N行,每行一个正整数不会超过10^6,第i+1行的数字代表第i头牛的产奶量。

Output

产奶量处于中间的牛的产奶量。

Sample Input

5
1
2
4
5
3

Sample Output

3

Source

[p][/p]

贴这个题只是为了复习一下排序的写法........

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<algorithm>
using namespace std;
struct COW
{
    int num;
    int makeMilk;
}cow[10010];

bool cmp(COW a,COW b)
{
    if(a.makeMilk<b.makeMilk)
        return true;
    if(a.makeMilk==b.makeMilk&&a.num>b.num)
        return true;
    return false;
}

int main()
{
    int n;
    while(~scanf("%d",&n))
    {
        for(int i=1;i<=n;i++)
        {
            scanf("%d",&cow[i].makeMilk);
            cow[i].num=i;
        }
        sort(cow+1,cow+n+1,cmp);
        printf("%d\n",cow[(n+1)/2].makeMilk);
    }
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值