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 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 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)
Sorter
from
(inclusive) and ends at
to
(exclusive).protected abstract void setPivot(int i)
i
so that it can later be used as a
pivot, see comparePivot(int)
.protected abstract int comparePivot(int j)
j
, similarly to
compare(i, j)
.Copyright © 2000-2016 Apache Software Foundation. All Rights Reserved.