萌新快排求教
查看原帖
萌新快排求教
99460
Hiraeth楼主2020/9/15 20:13

WA了前三个点qaq 问题在哪里呢

#include<bits/stdc++.h>
using namespace std;
int n,a[1000005];
void qsort(int l,int r){
    int i=l,j=r;
    int mid=(l+r)>>1;
    do {
        while (a[i]<a[mid]) i++;
        while (a[j]>a[mid]) j--;
        if(i<=j){
            swap(a[i],a[j]);
            i+=1;
            j-=1;
        }
    }while (i<=j);
    if (l<j) qsort(l,j);
    if (i<r) qsort(i,r);
}
int main(){
    scanf("%d",&n);
    for (int i=1;i<=n;i++) scanf("%d",&a[i]);
    qsort(1,n);
    for (int i=1;i<=n;i++)
        if (i==n) printf("%d\n",a[n]);
        else printf("%d ",a[i]);
    return 0;
}

2020/9/15 20:13
加载中...