public abstract class IntroSorter extends Sorter
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.| Constructor and Description |
|---|
IntroSorter()
Create a new
IntroSorter. |
| Modifier and Type | Method and Description |
|---|---|
protected int |
compare(int i,
int j)
Compare entries found in slots
i and j. |
protected abstract int |
comparePivot(int j)
Compare the pivot with the slot at
j, similarly to
compare(i, j). |
protected abstract void |
setPivot(int i)
Save the value at slot
i so that it can later be used as a
pivot, see Sorter.comparePivot(int). |
void |
sort(int from,
int to)
Sort the slice which starts at
from (inclusive) and ends at
to (exclusive). |
public IntroSorter()
IntroSorter.public final void sort(int from,
int to)
Sorterfrom (inclusive) and ends at
to (exclusive).protected abstract void setPivot(int i)
Sorteri so that it can later be used as a
pivot, see Sorter.comparePivot(int).protected abstract int comparePivot(int j)
Sorterj, similarly to
compare(i, j).comparePivot in class Sorterprotected int compare(int i,
int j)
Sorteri and j.
The contract for the returned value is the same as
Comparator.compare(Object, Object).Copyright © 2000-2019 Apache Software Foundation. All Rights Reserved.