Class StraightInsertionSorter<T>

java.lang.Object
com.irurueta.sorting.Sorter<T>
com.irurueta.sorting.StraightInsertionSorter<T>
Type Parameters:
T - Type of instances being sorted.

This class is based on algorithm found at Numerical Recipes. 3rd Edition. Cambridge Press. Chapter 8. p. 424 Knuth. D.E. 1997, Sorting and Searching, 3rd ed., vol. 3 of The Art of Computer Programming (Reading, MA: Addison-Wesley) Sedgewick, R. 1998. Algorithms in C, 3rd ed. (Reading, MA: Addison- Wesley), Chapter 11.


public class StraightInsertionSorter<T> extends Sorter<T>
Sorts instances of type T in provided arrays using straight insertion method.
  • Constructor Details

    • StraightInsertionSorter

      public StraightInsertionSorter()
  • Method Details

    • sort

      public void sort(T[] array, int fromIndex, int toIndex, Comparator<T> comparator)
      Sorts provided array in ascending order so that array[i - 1] < array[i] for any valid i. This method modifies provided array so that after execution of this method array elements are ordered.
      Specified by:
      sort in class Sorter<T>
      Parameters:
      array - Array to be sorted. After execution of this method elements in array between fromIndex (inclusive) and toIndex (exclusive) are modified so that they are on ascending order.
      fromIndex - Index were sorting starts (inclusive).
      toIndex - Index were sorting stops (exclusive).
      comparator - Determines whether an element is greater or lower than another one.
      Throws:
      IllegalArgumentException - If fromIndex > toIndex.
      ArrayIndexOutOfBoundsException - if fromIndex < 0 or toIndex > array.length.
    • sortWithIndices

      public int[] sortWithIndices(T[] array, int fromIndex, int toIndex, Comparator<T> comparator)
      Sorts provided array in ascending order so that array[i - 1] < array[i] for any valid i. This method modifies provided array so that after execution of this method array elements are ordered. An array containing the original indices where elements were located is returned so that other arrays or collections can be kept in the same order.
      Specified by:
      sortWithIndices in class Sorter<T>
      Parameters:
      array - Array to be sorted. After execution of this method elements in array between fromIndex (inclusive) and toIndex (exclusive) are modified so that they are on ascending order.
      fromIndex - Index were sorting starts (inclusive).
      toIndex - Index were sorting stops (exclusive).
      comparator - Determines whether an element is greater or lower than another one.
      Returns:
      Array containing original location of elements that have been sorted. Only elements between fromIndex (inclusive) and toIndex (exclusive) are modified, the remaining ones are kept in natural order.
      Throws:
      IllegalArgumentException - If fromIndex > toIndex.
      ArrayIndexOutOfBoundsException - if fromIndex < 0 or toIndex > array.length.
    • getMethod

      public SortingMethod getMethod()
      Returns sorting method of this class.
      Specified by:
      getMethod in class Sorter<T>
      Returns:
      Sorting method.
    • sort

      public void sort(double[] array, int fromIndex, int toIndex)
      Sorts provided array in ascending order so that array[i - 1] < array[i] for any valid i. This method modifies provided array so that after execution of this method array elements are ordered.
      Specified by:
      sort in class Sorter<T>
      Parameters:
      array - Array to be sorted. After execution of this method elements in array between fromIndex (inclusive) and toIndex (exclusive) are modified so that they are on ascending order.
      fromIndex - Index were sorting starts (inclusive).
      toIndex - Index were sorting stops (exclusive).
      Throws:
      IllegalArgumentException - If fromIndex > toIndex.
      ArrayIndexOutOfBoundsException - if fromIndex < 0 or toIndex > array.length.
    • sortWithIndices

      public int[] sortWithIndices(double[] array, int fromIndex, int toIndex)
      Sorts provided array in ascending order so that array[i - 1] < array[i] for any valid i. This method modifies provided array so that after execution of this method array elements are ordered. An array containing the original indices where elements were located is returned so that other arrays or collections can be kept in the same order.
      Specified by:
      sortWithIndices in class Sorter<T>
      Parameters:
      array - Array to be sorted. After execution of this method elements in array between fromIndex (inclusive) and toIndex (exclusive) are modified so that they are on ascending order.
      fromIndex - Index were sorting starts (inclusive).
      toIndex - Index were sorting stops (exclusive).
      Returns:
      Array containing original location of elements that have been sorted. Only elements between fromIndex (inclusive) and toIndex (exclusive) are modified, the remaining ones are kept in natural order.
      Throws:
      IllegalArgumentException - If fromIndex > toIndex.
      ArrayIndexOutOfBoundsException - if fromIndex < 0 or toIndex > array.length.
    • sort

      public void sort(float[] array, int fromIndex, int toIndex)
      Sorts provided array in ascending order so that array[i - 1] < array[i] for any valid i. This method modifies provided array so that after execution of this method array elements are ordered.
      Specified by:
      sort in class Sorter<T>
      Parameters:
      array - Array to be sorted. After execution of this method elements in array between fromIndex (inclusive) and toIndex (exclusive) are modified so that they are on ascending order.
      fromIndex - Index were sorting starts (inclusive).
      toIndex - Index were sorting stops (exclusive).
      Throws:
      IllegalArgumentException - If fromIndex > toIndex.
      ArrayIndexOutOfBoundsException - if fromIndex < 0 or toIndex > array.length.
    • sortWithIndices

      public int[] sortWithIndices(float[] array, int fromIndex, int toIndex)
      Sorts provided array in ascending order so that array[i - 1] < array[i] for any valid i. This method modifies provided array so that after execution of this method array elements are ordered. An array containing the original indices where elements were located is returned so that other arrays or collections can be kept in the same order.
      Specified by:
      sortWithIndices in class Sorter<T>
      Parameters:
      array - Array to be sorted. After execution of this method elements in array between fromIndex (inclusive) and toIndex (exclusive) are modified so that they are on ascending order.
      fromIndex - Index were sorting starts (inclusive).
      toIndex - Index were sorting stops (exclusive).
      Returns:
      Array containing original location of elements that have been sorted. Only elements between fromIndex (inclusive) and toIndex (exclusive) are modified, the remaining ones are kept in natural order.
      Throws:
      IllegalArgumentException - If fromIndex > toIndex.
      ArrayIndexOutOfBoundsException - if fromIndex < 0 or toIndex > array.length.
    • sort

      public void sort(int[] array, int fromIndex, int toIndex)
      Sorts provided array in ascending order so that array[i - 1] < array[i] for any valid i. This method modifies provided array so that after execution of this method array elements are ordered.
      Specified by:
      sort in class Sorter<T>
      Parameters:
      array - Array to be sorted. After execution of this method elements in array between fromIndex (inclusive) and toIndex (exclusive) are modified so that they are on ascending order.
      fromIndex - Index were sorting starts (inclusive).
      toIndex - Index were sorting stops (exclusive).
      Throws:
      IllegalArgumentException - If fromIndex > toIndex.
      ArrayIndexOutOfBoundsException - if fromIndex < 0 or toIndex > array.length.
    • sortWithIndices

      public int[] sortWithIndices(int[] array, int fromIndex, int toIndex)
      Sorts provided array in ascending order so that array[i - 1] < array[i] for any valid i. This method modifies provided array so that after execution of this method array elements are ordered. An array containing the original indices where elements were located is returned so that other arrays or collections can be kept in the same order.
      Specified by:
      sortWithIndices in class Sorter<T>
      Parameters:
      array - Array to be sorted. After execution of this method elements in array between fromIndex (inclusive) and toIndex (exclusive) are modified so that they are on ascending order.
      fromIndex - Index were sorting starts (inclusive).
      toIndex - Index were sorting stops (exclusive).
      Returns:
      Array containing original location of elements that have been sorted. Only elements between fromIndex (inclusive) and toIndex (exclusive) are modified, the remaining ones are kept in natural order.
      Throws:
      IllegalArgumentException - If fromIndex > toIndex.
      ArrayIndexOutOfBoundsException - if fromIndex < 0 or toIndex > array.length.
    • sort

      public void sort(long[] array, int fromIndex, int toIndex)
      Sorts provided array in ascending order so that array[i - 1] < array[i] for any valid i. This method modifies provided array so that after execution of this method array elements are ordered.
      Specified by:
      sort in class Sorter<T>
      Parameters:
      array - Array to be sorted. After execution of this method elements in array between fromIndex (inclusive) and toIndex (exclusive) are modified so that they are on ascending order.
      fromIndex - Index were sorting starts (inclusive).
      toIndex - Index were sorting stops (exclusive).
      Throws:
      IllegalArgumentException - If fromIndex > toIndex.
      ArrayIndexOutOfBoundsException - if fromIndex < 0 or toIndex > array.length.
    • sortWithIndices

      public int[] sortWithIndices(long[] array, int fromIndex, int toIndex)
      Sorts provided array in ascending order so that array[i - 1] < array[i] for any valid i. This method modifies provided array so that after execution of this method array elements are ordered. An array containing the original indices where elements were located is returned so that other arrays or collections can be kept in the same order.
      Specified by:
      sortWithIndices in class Sorter<T>
      Parameters:
      array - Array to be sorted. After execution of this method elements in array between fromIndex (inclusive) and toIndex (exclusive) are modified so that they are on ascending order.
      fromIndex - Index were sorting starts (inclusive).
      toIndex - Index were sorting stops (exclusive).
      Returns:
      Array containing original location of elements that have been sorted. Only elements between fromIndex (inclusive) and toIndex (exclusive) are modified, the remaining ones are kept in natural order.
      Throws:
      IllegalArgumentException - If fromIndex > toIndex.
      ArrayIndexOutOfBoundsException - if fromIndex < 0 or toIndex > array.length.