All pastes #184564 Raw Edit

Anonymous

public text v1 · immutable
#184564 ·published 2006-09-28 01:00 UTC
rendered paste body
#define eq(A,B) (!less(A,B)&& !less(B,A))
void quicksort(Item a[],int l,int r)
{int i,j,k,p,q;Item v;
if (r <=l) return;
v=a[r]; i=l-1; j=r; p=l-1; q=r;
for(;;)
{
while (less(a[++i],v));
while (less(v,a[--j])) if (j==l) break;
if (i>=j) break;
exch(a[i],a[j]);
if (eq(a[i],v)) {p++;exch(a[p],a[i]);}
if (eq(v,a[j])) {q--; exch(a[q],a[j]);}
}
exch(a[i],a[r]);j=i-1; i=i+1;
for (k=l ; k<p;k++,j++) exch(a[k],a[j]);
for (k=r-1;k>q;k--,i++) exch(a[k],a[i]);
quicksort(a,l,j);
quicksort(a,i,r);
}