java.lang.Object
com.carrotsearch.hppc.sorting.IndirectSort
Sorting routines that return an array of sorted indices implied by a given comparator rather than
move elements of whatever the comparator is using for comparisons.
A practical use case for this class is when the index of an array is meaningful and one wants
to acquire the order of values in that array. None of the methods in Java Collections would
provide such functionality directly and creating a collection of boxed Integer objects
for indices seems to be too costly.
-
Method Summary
Modifier and TypeMethodDescriptionstatic int[]mergesort(int[] orderArray, IntBinaryOperator comparator) Returns a sorted copy of the order array provided, using the givencomparator.static int[]mergesort(int start, int length, IntBinaryOperator comparator) Returns the order of elements between indicesstartandlength, as indicated by the givencomparator.static <T> int[]mergesort(T[] input, int start, int length, Comparator<? super T> comparator) Returns the order of elements between indicesstartandlength, as indicated by the givencomparator.
-
Method Details
-
mergesort
Returns the order of elements between indicesstartandlength, as indicated by the givencomparator.This routine uses merge sort. It is guaranteed to be stable. It creates a new indices array, and clones it while sorting.
-
mergesort
Returns a sorted copy of the order array provided, using the givencomparator.This routine uses merge sort. It is guaranteed to be stable. The provided
indicesArrayis cloned while sorting and the clone is returned. -
mergesort
public static <T> int[] mergesort(T[] input, int start, int length, Comparator<? super T> comparator) Returns the order of elements between indicesstartandlength, as indicated by the givencomparator.This routine uses merge sort. It is guaranteed to be stable. It creates a new indices array, and clones it while sorting.
-