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