问题标题: 已自行解决

0
0
已解决
李瑞曦
李瑞曦
高级天翼
高级天翼

做了半天

为啥子30分????

搞不明白·····

所以

给各位大佬跪了

求帮助QwQ

 

我的代码:

#include<iostream>
using namespace std;
int n,m;
int a[1111111];
void f(int a[],int l,int r){
    int mid=a[(l+r)/2];
    int i=l,j=r;
    while(i<=j){
        while(a[i]<mid){
            i++;
        }
        while(a[j]>mid){
            j--;
        }
        if(i<=j){
            swap(a[i],a[j]);
            i++;
            j--;
        }
    }
    if(l<j){
        f(a,l,j);
    }
    if(i<r){
        f(a,i,r);
    }
}
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    f(a,1,n);
    if(n%2==0){
        cout<<(a[n/2]+a[n/2+1])/2;
    }
    else{
        cout<<a[n/2+1];
    }
    return 0;
}

 

李瑞曦在2021-04-16 18:34:24追加了内容

结帖


0
我要回答