private void insertionSort(List<T> list, int startPos, int sublistOffset) {
    for (int nextUnsortedPos = startPos + sublistOffset;
        nextUnsortedPos < list.size();
        nextUnsortedPos += sublistOffset) {
      
      for (int nextPosToCheck = nextUnsortedPos;
          nextPosToCheck > startPos;
           nextPosToCheck -= sublistOffset) {
        if (list.get(nextPosToCheck).compareTo(
                list.get(nextPosToCheck - sublistOffset)) < 0) {
          listSorterHelper.swap(list, nextPosToCheck, nextPosToCheck - sublistOffset);
        }
      }
    }
  }