public abstract class MSBRadixSorter extends Sorter
IntroSorter
when the size
of the buckets to sort becomes small. It is NOT stable.
Worst-case memory usage is about 2.3 KB
.Modifier and Type | Field and Description |
---|---|
protected static int |
HISTOGRAM_SIZE |
protected int |
maxLength |
Modifier | Constructor and Description |
---|---|
protected |
MSBRadixSorter(int maxLength)
Sole constructor.
|
Modifier and Type | Method and Description |
---|---|
protected abstract int |
byteAt(int i,
int k)
Return the k-th byte of the entry at index
i , or -1 if
its length is less than or equal to k . |
protected int |
compare(int i,
int j)
Compare entries found in slots
i and j . |
protected int |
getBucket(int i,
int k)
Return a number for the k-th character between 0 and
HISTOGRAM_SIZE . |
protected Sorter |
getFallbackSorter(int k)
Get a fall-back sorter which may assume that the first k bytes of all compared strings are equal.
|
protected void |
reorder(int from,
int to,
int[] startOffsets,
int[] endOffsets,
int k)
Reorder based on start/end offsets for each bucket.
|
void |
sort(int from,
int to)
Sort the slice which starts at
from (inclusive) and ends at
to (exclusive). |
protected void |
sort(int from,
int to,
int k,
int l) |
comparePivot, setPivot, swap
protected static final int HISTOGRAM_SIZE
protected final int maxLength
protected MSBRadixSorter(int maxLength)
maxLength
- the maximum length of keys, pass Integer.MAX_VALUE
if unknown.protected abstract int byteAt(int i, int k)
i
, or -1
if
its length is less than or equal to k
. This may only be called
with a value of i
between 0
included and
maxLength
excluded.protected Sorter getFallbackSorter(int k)
protected final int compare(int i, int j)
Sorter
i
and j
.
The contract for the returned value is the same as
Comparator.compare(Object, Object)
.public void sort(int from, int to)
Sorter
from
(inclusive) and ends at
to
(exclusive).protected void sort(int from, int to, int k, int l)
protected int getBucket(int i, int k)
HISTOGRAM_SIZE
.protected void reorder(int from, int to, int[] startOffsets, int[] endOffsets, int k)
startOffsets
- start offsets per bucketendOffsets
- end offsets per bucketCopyright © 2000-2021 Apache Software Foundation. All Rights Reserved.