code: private static void reverseRange(Object[] a, int lo, int hi) {
          hi--;
          while (lo < hi) {
              Object t = a[lo];
              a[lo++] = a[hi];
              a[hi--] = t;
          }
      }
docs: Reverse the specified range of the specified array.
  
  @param a the array in which a range is to be reversed
  @param lo the index of the first element in the range to be reversed
  @param hi the index after the last element in the range to be reversed