code: public static double quickSelect(double[] data, int rank) {
      quickSelect(data, 0, data.length, rank);
      return data[rank];
    }
docs: QuickSelect is essentially quicksort, except that we only "sort" that half
  of the array that we are interested in.
  
  Note: the array is <b>modified</b> by this.
  
  @param data Data to process
  @param rank Rank position that we are interested in (integer!)
  @return Value at the given rank