快速排序模板
阿新 • • 發佈:2018-12-11
不得不承認在初賽來臨前複習這些很丟人……
好吧,其實我覺得可以手推,不過放個板子保險一點。
因為我慫
using namespace std;
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <ctime>
#include <algorithm>
int n;
int a[200001];
void qsort(int l,int r){
int i=l,j=r,mid=a[l+rand()%(r-l+1)];
do{
while (a[j]>mid) j--;
while (a[i]<mid) i++;
if (i<=j){
swap(a[i],a[j]);
i++,j--;
}
}
while (i<=j);
if (i<r)
qsort(i,r);
if (l<j)
qsort(l,j);
}
int main(){
scanf("%d",&n);
for (int i=1;i<=n;++i)
scanf("%d",&a[i]);
srand(time(0));
qsort(1,n);
for (int i=1;i<=n;++ i)
printf("%d\n",a[i]);
return 0;
}