code: private static void reverse(int first, int last, Swapper swapper) {
  	// no more needed since manually inlined
  	while (first < --last) {
  		swapper.swap(first++,last);
  	}
  }
docs: Reverses a sequence of elements.
  @param array      Array containing the sequence
  @param first      Beginning of the range
  @param last       One past the end of the range
  @exception        ArrayIndexOutOfBoundsException If the range
  is invalid.