#include <sort.h>
Public Member Functions | |
Sort (SORTING_METHOD method=INTROSORT) | |
Constructor that sets Intro Sort method by default. | |
void | set_method (SORTING_METHOD method) |
Set sorting method. | |
SORTING_METHOD | get_method () const |
Get current sorting method. | |
void | sort (int low, int high, Vec< T > &data) |
Sorting function of a subset of a vector data. | |
ivec | sort_index (int low, int high, const Vec< T > &data) |
Sorting function that returns a sorted index vector. | |
void | intro_sort (int low, int high, int max_depth, Vec< T > &data) |
Introsort function of a subset of a vector data . | |
ivec | intro_sort_index (int low, int high, int max_depth, const Vec< T > &data) |
Introsort function, which returns a sorted index vector. |
A class which takes a vector, and sorts its values descending. There are two types of sort: a normal sort (accessed via the Sort::sort() function) which sorts the vector passed in the argument, and an index sort (accessed via the Sort::sort_index() function) which leaves the passed vector intact, but returns an index vector describing the sorted order.
The Sort class has four sorting methods implemented:
References:
void itpp::Sort< T >::intro_sort | ( | int | low, | |
int | high, | |||
int | max_depth, | |||
Vec< T > & | data | |||
) | [inline] |
Introsort function of a subset of a vector data
.
low | Start index of a subvector to be sorted | |
high | End index of a subvector to be sorted | |
max_depth | Maximum recursion depth before switching to heap sort recommended value: log2 of the length of the data vector | |
data | Data vector, in which a part of it is to be sorted |
This function uses recurrence.
References itpp::Vec< Num_T >::_data(), it_assert, and itpp::Vec< Num_T >::size().
ivec itpp::Sort< T >::intro_sort_index | ( | int | low, | |
int | high, | |||
int | max_depth, | |||
const Vec< T > & | data | |||
) | [inline] |
Introsort function, which returns a sorted index vector.
low | Start index of a subvector to be sorted | |
high | End index of a subvector to be sorted | |
max_depth | Maximum recursion depth before switching to heap sort recommended value: log2 of the length of the data vector | |
data | Data vector, in which a part of it is to be sorted |
This function uses recurrence.
References itpp::Vec< Num_T >::_data(), it_assert, and itpp::Vec< Num_T >::size().
void itpp::Sort< T >::sort | ( | int | low, | |
int | high, | |||
Vec< T > & | data | |||
) | [inline] |
Sorting function of a subset of a vector data.
low | Start index of a subvector to be sorted | |
high | End index of a subvector to be sorted | |
data | Data vector, in which a part of it is to be sorted |
References itpp::Vec< Num_T >::_data(), it_assert, it_error, itpp::levels2bits(), and itpp::Vec< Num_T >::size().
Referenced by itpp::Vec< Num_T >::sort().
ivec itpp::Sort< T >::sort_index | ( | int | low, | |
int | high, | |||
const Vec< T > & | data | |||
) | [inline] |
Sorting function that returns a sorted index vector.
low | Start index of a subvector to be sorted | |
high | End index of a subvector to be sorted | |
data | Data vector, in which a part of it is to be sorted |
References itpp::Vec< Num_T >::_data(), it_assert, it_error, itpp::levels2bits(), and itpp::Vec< Num_T >::size().
Referenced by itpp::Vec< Num_T >::sort_index().