docs: public static double median(double[] data, int begin, int end) {
      final int length = end - begin;
      assert (length > 0);
      // Integer division is "floor" since we are non-negative.
      final int left = begin + ((length - 1) >> 1);
      quickSelect(data, begin, end, left);
      if(length % 2 == 1) {
        return data[left];
      }
      else {
        quickSelect(data, left + 1, end, left + 1);
        return data[left] + .5 * (data[left + 1] - data[left]);
      }
    }