1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| int partition(int a[],int p ,int q) { int x=a[p]; int i=p; int j=q+1; while(true) { while(a[++i]<x&&i<q); while(a[--j]>x); if(i>=j)break; Swap(a[i],a[j]); } a[p]=a[j]; a[j]=x; return j; } void quicksort(int a[],int p,int q) { if(p<q) { int k=partition(a,p,q); quicksort(a,p,k-1); quicksort(a,k+1,q); } }
|