docs: private static final <T> void swap(long[] keys, T[] values, double[] probs, int i, int j) {
      long keySwap = keys[i];
      keys[i] = keys[j];
      keys[j] = keySwap;
  
      T swapValue = values[i];
      values[i] = values[j];
      values[j] = swapValue;
      
      double swapProb = probs[i];
      probs[i] = probs[j];
      probs[j] = swapProb;
    }