public abstract class RadixSelector extends Selector
This implementation works similarly to a MSB radix sort except that it only recurses into the sub partition that contains the desired value.
Modifier | Constructor and Description |
---|---|
protected |
RadixSelector(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 Selector |
getFallbackSelector(int d)
Get a fall-back selector which may assume that the first
d bytes
of all compared strings are equal. |
void |
select(int from,
int to,
int k)
Reorder elements so that the element at position
k is the same
as if all elements were sorted and all other elements are partitioned
around it: [from, k) only contains elements that are less than
or equal to k and (k, to) only contains elements that
are greater than or equal to k . |
protected RadixSelector(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 Selector getFallbackSelector(int d)
d
bytes
of all compared strings are equal. This fallback selector is used when
the range becomes narrow or when the maximum level of recursion has
been exceeded.public void select(int from, int to, int k)
Selector
k
is the same
as if all elements were sorted and all other elements are partitioned
around it: [from, k)
only contains elements that are less than
or equal to k
and (k, to)
only contains elements that
are greater than or equal to k
.Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.