天之道

享受编程的乐趣。
posts - 118, comments - 7, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

找出中间数(C++快排函数使用)

Posted on 2012-09-23 17:18 hoshelly 阅读(1073) 评论(0)  编辑 收藏 引用 所属分类: Programming
Totalsubmit: 790   Accepted: 47  
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

#include<iostream>
#include<algorithm>
using namespace std;
int compare(const void * a,const void * b)
{
    return *(int*)a - *(int*)b;
}
int main()
{
    int n,cow[10005];
    while(cin>>n)
    {
        for(int i=1;i<=n;i++)
        {
            cin>>cow[i];
        }
        qsort(cow+1,n,sizeof(int),compare);
        cout<<cow[(n+1)/2]<<endl;
    }
    return 0;
}

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理