Package smile.sort

Class DoubleHeapSelect

java.lang.Object
smile.sort.DoubleHeapSelect

public class DoubleHeapSelect extends Object
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 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.