快速排序(hoare)

#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+10;
int n,a[maxn];

void quicksort(int l,int r){
    if(l>=r) return;
    int mid=(l+r)/2;
    int tmp=a[mid];
    int i=l,j=r;
    while(i<=j){
        while(a[i]<tmp) i++;
        while(a[j]>tmp) j--;
        if(i<=j){
            swap(a[i],a[j]);
            i++;j--;
        }
    }
    quicksort(l,j);
    quicksort(i,r);
}

int main(){
    cin>>n;
    for(int i=0;i<n;i++) cin>>a[i];
    quicksort(0,n-1);
    for(int i=0;i<n;i++){
        cout<<a[i]<<" ";
    }
    return 0;
}
posted @ 2025-10-14 08:37  sadmax11  阅读(2)  评论(0)    收藏  举报