简单排序水题
谁是中间的那个
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;
}
本文介绍了一个简单的排序问题,通过编程找出牧场中产奶量处于中间位置的奶牛。该问题涉及到对一组数据进行排序,并找到位于中间的数据点。适合用于复习和练习排序算法的基本应用。
273

被折叠的 条评论
为什么被折叠?



