POJ2388 Who's in the Middle

很简单的一道题目

排序,输出中位数即可

#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn = 1e4 + 5;
int a[maxn];
void quicksort(int head,int tail)
{
    int i = head, j = tail, k = a[(head+tail)/2];
    while(i <= j){
        while(a[i] < k) i++;
        while(a[j] > k) j--;
        if(i <= j){
            swap(a[i],a[j]);
            i++;
            j--;
        }

    }
    if(head < j) quicksort(head,j);
    if(i < tail) quicksort(i,tail);
}
int main()
{
    int n; scanf("%d",&n);
    for(int i = 1; i <= n; i++){
        scanf("%d",&a[i]);
    }
    quicksort(1,n);
    printf("%d\n",a[(1+n)/2]);
    return 0;
}

猜你喜欢

转载自blog.csdn.net/kkjy_00/article/details/87805849
今日推荐