Package smile.sort
Class DoubleHeapSelect
java.lang.Object
smile.sort.DoubleHeapSelect
This class tracks the smallest values seen thus far in a stream of values.
This implements a single-pass selection for large data sets. That is,
we have a stream of input values, each of which we get to see only once. We
want to be able to report at any time, say after n values, the i-th smallest
value see so far.
-
Constructor Summary
ConstructorDescriptionDoubleHeapSelect
(double[] heap) Constructor.DoubleHeapSelect
(int k) Constructor. -
Method Summary
-
Constructor Details
-
DoubleHeapSelect
public DoubleHeapSelect(int k) Constructor.- Parameters:
k
- the heap size.
-
DoubleHeapSelect
public DoubleHeapSelect(double[] heap) Constructor.- Parameters:
heap
- the array to store smallest values to track.
-
-
Method Details
-
add
public void add(double datum) Assimilate a new value from the stream.- Parameters:
datum
- a new value.
-
peek
public double peek()Returns the k-th smallest value seen so far.- Returns:
- the k-th smallest value.
-
get
public double get(int i) Returns the i-th smallest value seen so far. i = 0 returns the smallest value seen, i = 1 the second largest, ..., i = k-1 the last position tracked. Also, i must be less than the number of previous assimilated.- Parameters:
i
- the ordinal index of smallest values.- Returns:
- the i-th smallest value.
-
sort
public void sort()Sort the smallest values.
-