Function vector_smallest (o2scl)¶
-
template<class vec_t, class data_t>
void o2scl::vector_smallest(size_t n, vec_t &data, size_t k, vec_t &smallest)¶ Find the k smallest entries of the first
n
elements of a vector.Given a vector
data
of sizen
, this function sets the firstk
entries of the vectorsmallest
to the k smallest entries from vectordata
in ascending order. The vectorsmallest
must be allocated beforehand to hold at leastk
elements.This works similarly to the GSL function
gsl_sort_smallest()
.If
k
is zero, then this function does nothing and returns o2scl::success .Note
This \( {\cal O}(k N) \) algorithm is useful only when \( k << N \).
-
template<class vec_t, class data_t>
void o2scl::vector_smallest(vec_t &data, size_t k, vec_t &smallest)¶ Find the k smallest entries of a vector of a vector.
Given a vector
data
, this function sets the firstk
entries of the vectorsmallest
to the k smallest entries from vectordata
in ascending order. The vectorsmallest
is resized if necessary to hold at leastk
elements.This works similarly to the GSL function
gsl_sort_smallest()
.If
k
is zero, then this function does nothing and returns o2scl::success .Note
This \( {\cal O}(k N) \) algorithm is useful only when \( k << N \).