insert( n, r )
RecordArray r;
int n;
{int i;
ArrayEntry tempr;
tempr = r[n];
for ( ; n>0; n=i) {
i = (n-1)/2;
if ( r[i].k <= tempr.k ) break;
r[n] = r[i];
}
r[n] = tempr;
};
siftup( r, i, n )
RecordArray r;
int i, n;
{ArrayEntry tempr;
int j;
while ( (j=2*i+1) <= n ) {
if ( j r[j+1].k ) j++;
if ( r[i].k > r[j].k ) {
tempr = r[j];
r[j] = r[i];
r[i] = tempr;
i = j;
}
else break;
}
};
|