private void fixupMaxWithComparator ( int k ) { K key = array [ k ] ; int gp = k / 4 ; while ( gp > 0 && comparator . compare ( array [ gp ] , key ) < 0 ) { array [ k ] = array [ gp ] ; k = gp ; gp = k / 4 ; } array [ k ] = key ; }
Upwards fix starting from a particular element at a maximum level . Performs comparisons using the comparator .