code: 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;
      }
docs: Upwards fix starting from a particular element at a maximum level.
  Performs comparisons using the comparator.
  
  @param k
  the index of the starting element