code: private static void heapify(int[] heap, int[] reverseIndex, int count, float[] values)
    {
      int start = (count - 2) / 2;
      while (start >= 0) {
        siftDown(heap, reverseIndex, start, count - 1, values);
        start--;
      }
    }
docs: Builds a min-heap and a reverseIndex into the heap from the given array of values
  
  @param heap         min-heap stored as indices into the array of values
  @param reverseIndex reverse index from the array of values into the heap
  @param count        current size of the heap
  @param values       values to be stored in the heap