module Helpers

def median_partition!(range = 0...length, &block)

def median_partition!(range = 0...length, &block)
  median, target = (range.begin + range.end) / 2, range
  while target.begin != median
    lower, upper = partition!(target, &block)
    target = lower === median ? lower : upper
  end
  return range.begin...median, median...range.end
end