Package org.apache.lucene.util
Class IntroSorter
java.lang.Object
org.apache.lucene.util.Sorter
org.apache.lucene.util.IntroSorter
- Direct Known Subclasses:
ArrayIntroSorter,CollectionUtil.ListIntroSorter
Sorter implementation based on a variant of the quicksort algorithm
called introsort: when
the recursion level exceeds the log of the length of the array to sort, it
falls back to heapsort. This prevents quicksort from running into its
worst-case quadratic runtime. Small arrays are sorted with
insertion sort.-
Field Summary
Fields inherited from class org.apache.lucene.util.Sorter
BINARY_SORT_THRESHOLD -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected intcompare(int i, int j) Compare entries found in slotsiandj.protected abstract intcomparePivot(int j) Compare the pivot with the slot atj, similarly tocompare(i, j).(package private) voidquicksort(int from, int to, int maxDepth) protected abstract voidsetPivot(int i) Save the value at slotiso that it can later be used as a pivot, seeSorter.comparePivot(int).final voidsort(int from, int to) Sort the slice which starts atfrom(inclusive) and ends atto(exclusive).Methods inherited from class org.apache.lucene.util.Sorter
binarySort, binarySort, checkRange, doRotate, heapChild, heapify, heapParent, heapSort, lower, lower2, mergeInPlace, reverse, rotate, siftDown, swap, upper, upper2
-
Constructor Details
-
IntroSorter
public IntroSorter()Create a newIntroSorter.
-
-
Method Details
-
sort
public final void sort(int from, int to) Description copied from class:SorterSort the slice which starts atfrom(inclusive) and ends atto(exclusive). -
quicksort
void quicksort(int from, int to, int maxDepth) -
setPivot
protected abstract void setPivot(int i) Description copied from class:SorterSave the value at slotiso that it can later be used as a pivot, seeSorter.comparePivot(int). -
comparePivot
protected abstract int comparePivot(int j) Description copied from class:SorterCompare the pivot with the slot atj, similarly tocompare(i, j).- Overrides:
comparePivotin classSorter
-
compare
protected int compare(int i, int j) Description copied from class:SorterCompare entries found in slotsiandj. The contract for the returned value is the same asComparator.compare(Object, Object).
-