Function vector_smallest (o2scl)

O2scl : Function List

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 size n, this function sets the first k entries of the vector smallest to the k smallest entries from vector data in ascending order. The vector smallest must be allocated beforehand to hold at least k 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 first k entries of the vector smallest to the k smallest entries from vector data in ascending order. The vector smallest is resized if necessary to hold at least k 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 \).