code: public ShuffleSorterIterator getSortedIterator() {
      int offset = 0;
      if (useRadixSort) {
        offset = RadixSort.sort(
          array, pos,
          PackedRecordPointer.PARTITION_ID_START_BYTE_INDEX,
          PackedRecordPointer.PARTITION_ID_END_BYTE_INDEX, false, false);
      } else {
        MemoryBlock unused = new MemoryBlock(
          array.getBaseObject(),
          array.getBaseOffset() + pos * 8L,
          (array.size() - pos) * 8L);
        LongArray buffer = new LongArray(unused);
        Sorter<PackedRecordPointer, LongArray> sorter =
          new Sorter<>(new ShuffleSortDataFormat(buffer));
  
        sorter.sort(array, 0, pos, SORT_COMPARATOR);
      }
      return new ShuffleSorterIterator(pos, array, offset);
    }
docs: Return an iterator over record pointers in sorted order.