1. 程式人生 > >快速排序模板

快速排序模板

不得不承認在初賽來臨前複習這些很丟人…… 好吧,其實我覺得可以手推,不過放個板子保險一點。 因為我慫

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; }