sort( r, lo, up )
ArrayToSort r;
int lo, up;
{ArrayToSort r1;
int i, j, uppr;
uppr = up + (UppBoundr-up)*3/4;
for (j=lo; j<=up; j++) r1[j]=r[j]; for (j=lo; j<=UppBoundr; j++) r[j].k=NoKey; for (j=lo; j<=up; j++) { for ( i=phi(r1[j].k,lo,uppr); r[i].k !=NoKey; i++) { if ( r1[j].k < r[i].k ) { r1[j-1]=r[i]; r[i]=r1[j]; r1[j]=r1[j-1]; }; if ( i> UppBoundr ) Error;
}
r[i] = r1[j];
};
for (j=i=lo; j<=uppboundr; j++) if ( r[j].k !=NoKey ) r[i++]=r[j]; while ( i <=UppBoundr ) r[i++].k=NoKey; }; |