#include<bits/stdc++.h> using namespace std; const int N=3e5+5; int n,a[N]; void qsort(int l, int r){ if (l>=r) return; int i=l,j=r,tmp=rand()%(r-l+1)+l; swap(a[l],a[tmp]); int val=a[l]; while (i<j){ while (i<j && a[j]>val) j--; if (i<j) a[i++]=a[j]; else break; while (i<j && a[i]<val) i++; if (i<j) a[j--]=a[i]; else break; } a[i]=val; qsort(l,i-1); qsort(i+1,r); } int main(){ srand(time(0)); scanf("%d",&n); for (int i=1; i<=n; i++) scanf("%d",&a[i]); qsort(1,n); for (int i=1; i<=n; i++) printf("%d ",a[i]); return 0; }
【模板】快速排序
猜你喜欢
转载自www.cnblogs.com/Alen-Walker/p/9777519.html
今日推荐
周排行