MLE:对于这段代码该如何优化
查看原帖
MLE:对于这段代码该如何优化
837084
misaka2784楼主2023/5/27 17:04

如题

//
//  main.c
//  p1923
//
//  Created by yamixiu on 2023/05/22.
//

#include <stdio.h>
#define MAX 5000010
int a[MAX],n,k;

void swap(int*a,int*b){
    int t=*a;*a=*b;*b=t;
}

void q_sort(int l,int r,int*flag){
    if(l>=r&&(l==k||r==k)){
        printf("%d",a[k]);
        *flag=1;
    }
    if(l>=r)return;
    int mid=l+r>>1;
    int pivot = a[mid];
    int i=l-1,j=r+1;
    while (i<j) {
        while(a[++i]<pivot);
        while(a[--j]>pivot);
        if(i<j)swap(&a[i],&a[j]);
    }
    if(k<=j)q_sort(l, j, flag);
    else q_sort(i, r, flag);
}
int main(int argc, const char * argv[]) {
    scanf("%d%d", &n, &k);
    for(int i=0;i<n;i++)scanf("%d",&a[i]);
    int flag =0;
    q_sort(0,n-1
           ,&flag);
    return 0;
}

2023/5/27 17:04
加载中...