tlx
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages

Specialized Sorting Algorithms. More...

Namespaces

 tlx::parallel_mergesort_detail
 
 tlx::sort_strings_detail
 

Parallel Sorting Algorithms

template<bool Stable, typename RandomAccessIterator , typename Comparator >
void parallel_mergesort_base (RandomAccessIterator begin, RandomAccessIterator end, Comparator comp, size_t num_threads=std::thread::hardware_concurrency(), MultiwayMergeSplittingAlgorithm mwmsa=MWMSA_DEFAULT)
 Parallel multiway mergesort main call. More...
 
template<typename RandomAccessIterator , typename Comparator = std::less< typename std::iterator_traits<RandomAccessIterator>::value_type>>
void parallel_mergesort (RandomAccessIterator begin, RandomAccessIterator end, Comparator comp=Comparator(), size_t num_threads=std::thread::hardware_concurrency(), MultiwayMergeSplittingAlgorithm mwmsa=MWMSA_DEFAULT)
 Parallel multiway mergesort. More...
 
template<typename RandomAccessIterator , typename Comparator = std::less< typename std::iterator_traits<RandomAccessIterator>::value_type>>
void stable_parallel_mergesort (RandomAccessIterator begin, RandomAccessIterator end, Comparator comp=Comparator(), size_t num_threads=std::thread::hardware_concurrency(), MultiwayMergeSplittingAlgorithm mwmsa=MWMSA_DEFAULT)
 Stable parallel multiway mergesort. More...
 

String Sorting Algorithms

static void sort_strings (unsigned char **strings, size_t size, size_t memory=0)
 Sort a set of strings represented by C-style uint8_t* in place. More...
 
static void sort_strings (char **strings, size_t size, size_t memory=0)
 Sort a set of strings represented by C-style char* in place. More...
 
static void sort_strings (const unsigned char **strings, size_t size, size_t memory=0)
 Sort a set of strings represented by C-style uint8_t* in place. More...
 
static void sort_strings (const char **strings, size_t size, size_t memory=0)
 Sort a set of strings represented by C-style char* in place. More...
 
static void sort_strings (std::vector< char * > &strings, size_t memory=0)
 Sort a set of strings represented by C-style char* in place. More...
 
static void sort_strings (std::vector< unsigned char * > &strings, size_t memory=0)
 Sort a set of strings represented by C-style uint8_t* in place. More...
 
static void sort_strings (std::vector< const char * > &strings, size_t memory=0)
 Sort a set of strings represented by C-style char* in place. More...
 
static void sort_strings (std::vector< const unsigned char * > &strings, size_t memory=0)
 Sort a set of strings represented by C-style uint8_t* in place. More...
 
static void sort_strings (std::string *strings, size_t size, size_t memory=0)
 Sort a set of std::strings in place. More...
 
static void sort_strings (std::vector< std::string > &strings, size_t memory=0)
 Sort a vector of std::strings in place. More...
 
static void sort_strings_lcp (unsigned char **strings, size_t size, uint32_t *lcp, size_t memory=0)
 Sort a set of strings represented by C-style uint8_t* in place. More...
 
static void sort_strings_lcp (char **strings, size_t size, uint32_t *lcp, size_t memory=0)
 Sort a set of strings represented by C-style char* in place. More...
 
static void sort_strings_lcp (const unsigned char **strings, size_t size, uint32_t *lcp, size_t memory=0)
 Sort a set of strings represented by C-style uint8_t* in place. More...
 
static void sort_strings_lcp (const char **strings, size_t size, uint32_t *lcp, size_t memory=0)
 Sort a set of strings represented by C-style char* in place. More...
 
static void sort_strings_lcp (std::vector< char * > &strings, uint32_t *lcp, size_t memory=0)
 Sort a set of strings represented by C-style char* in place. More...
 
static void sort_strings_lcp (std::vector< unsigned char * > &strings, uint32_t *lcp, size_t memory=0)
 Sort a set of strings represented by C-style uint8_t* in place. More...
 
static void sort_strings_lcp (std::vector< const char * > &strings, uint32_t *lcp, size_t memory=0)
 Sort a set of strings represented by C-style char* in place. More...
 
static void sort_strings_lcp (std::vector< const unsigned char * > &strings, uint32_t *lcp, size_t memory=0)
 Sort a set of strings represented by C-style uint8_t* in place. More...
 
static void sort_strings_lcp (std::string *strings, size_t size, uint32_t *lcp, size_t memory=0)
 Sort a set of std::strings in place. More...
 
static void sort_strings_lcp (std::vector< std::string > &strings, uint32_t *lcp, size_t memory=0)
 Sort a vector of std::strings in place. More...
 

Detailed Description

Specialized Sorting Algorithms.

Function Documentation

void tlx::parallel_mergesort ( RandomAccessIterator  begin,
RandomAccessIterator  end,
Comparator  comp = Comparator(),
size_t  num_threads = std::thread::hardware_concurrency(),
MultiwayMergeSplittingAlgorithm  mwmsa = MWMSA_DEFAULT 
)

Parallel multiway mergesort.

Parameters
beginBegin iterator of sequence.
endEnd iterator of sequence.
compComparator.
num_threadsNumber of threads to use.
mwmsaMultiwayMergeSplittingAlgorithm to use.

Definition at line 338 of file parallel_mergesort.hpp.

void tlx::parallel_mergesort_base ( RandomAccessIterator  begin,
RandomAccessIterator  end,
Comparator  comp,
size_t  num_threads = std::thread::hardware_concurrency(),
MultiwayMergeSplittingAlgorithm  mwmsa = MWMSA_DEFAULT 
)

Parallel multiway mergesort main call.

Parameters
beginBegin iterator of sequence.
endEnd iterator of sequence.
compComparator.
num_threadsNumber of threads to use.
mwmsaMultiwayMergeSplittingAlgorithm to use.
Template Parameters
StableStable sorting.

Definition at line 276 of file parallel_mergesort.hpp.

static void tlx::sort_strings ( unsigned char **  strings,
size_t  size,
size_t  memory = 0 
)
inlinestatic

Sort a set of strings represented by C-style uint8_t* in place.

If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.

Definition at line 41 of file strings.hpp.

static void tlx::sort_strings ( char **  strings,
size_t  size,
size_t  memory = 0 
)
inlinestatic

Sort a set of strings represented by C-style char* in place.

The strings are sorted as unsigned 8-bit characters, not signed characters! If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.

Definition at line 56 of file strings.hpp.

static void tlx::sort_strings ( const unsigned char **  strings,
size_t  size,
size_t  memory = 0 
)
inlinestatic

Sort a set of strings represented by C-style uint8_t* in place.

If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.

Definition at line 68 of file strings.hpp.

static void tlx::sort_strings ( const char **  strings,
size_t  size,
size_t  memory = 0 
)
inlinestatic

Sort a set of strings represented by C-style char* in place.

The strings are sorted as unsigned 8-bit characters, not signed characters! If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.

Definition at line 84 of file strings.hpp.

static void tlx::sort_strings ( std::vector< char * > &  strings,
size_t  memory = 0 
)
inlinestatic

Sort a set of strings represented by C-style char* in place.

The strings are sorted as unsigned 8-bit characters, not signed characters! If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.

Definition at line 99 of file strings.hpp.

static void tlx::sort_strings ( std::vector< unsigned char * > &  strings,
size_t  memory = 0 
)
inlinestatic

Sort a set of strings represented by C-style uint8_t* in place.

If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.

Definition at line 110 of file strings.hpp.

static void tlx::sort_strings ( std::vector< const char * > &  strings,
size_t  memory = 0 
)
inlinestatic

Sort a set of strings represented by C-style char* in place.

The strings are sorted as unsigned 8-bit characters, not signed characters! If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.

Definition at line 122 of file strings.hpp.

static void tlx::sort_strings ( std::vector< const unsigned char * > &  strings,
size_t  memory = 0 
)
inlinestatic

Sort a set of strings represented by C-style uint8_t* in place.

If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.

Definition at line 133 of file strings.hpp.

static void tlx::sort_strings ( std::string *  strings,
size_t  size,
size_t  memory = 0 
)
inlinestatic

Sort a set of std::strings in place.

The strings are sorted as unsigned 8-bit characters, not signed characters! If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.

Definition at line 148 of file strings.hpp.

static void tlx::sort_strings ( std::vector< std::string > &  strings,
size_t  memory = 0 
)
inlinestatic

Sort a vector of std::strings in place.

The strings are sorted as unsigned 8-bit characters, not signed characters! If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.

Definition at line 163 of file strings.hpp.

static void tlx::sort_strings_lcp ( unsigned char **  strings,
size_t  size,
uint32_t *  lcp,
size_t  memory = 0 
)
inlinestatic

Sort a set of strings represented by C-style uint8_t* in place.

If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.

Definition at line 178 of file strings.hpp.

static void tlx::sort_strings_lcp ( char **  strings,
size_t  size,
uint32_t *  lcp,
size_t  memory = 0 
)
inlinestatic

Sort a set of strings represented by C-style char* in place.

The strings are sorted as unsigned 8-bit characters, not signed characters! If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.

Definition at line 195 of file strings.hpp.

static void tlx::sort_strings_lcp ( const unsigned char **  strings,
size_t  size,
uint32_t *  lcp,
size_t  memory = 0 
)
inlinestatic

Sort a set of strings represented by C-style uint8_t* in place.

If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.

Definition at line 208 of file strings.hpp.

static void tlx::sort_strings_lcp ( const char **  strings,
size_t  size,
uint32_t *  lcp,
size_t  memory = 0 
)
inlinestatic

Sort a set of strings represented by C-style char* in place.

The strings are sorted as unsigned 8-bit characters, not signed characters! If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.

Definition at line 225 of file strings.hpp.

static void tlx::sort_strings_lcp ( std::vector< char * > &  strings,
uint32_t *  lcp,
size_t  memory = 0 
)
inlinestatic

Sort a set of strings represented by C-style char* in place.

The strings are sorted as unsigned 8-bit characters, not signed characters! If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.

Definition at line 241 of file strings.hpp.

static void tlx::sort_strings_lcp ( std::vector< unsigned char * > &  strings,
uint32_t *  lcp,
size_t  memory = 0 
)
inlinestatic

Sort a set of strings represented by C-style uint8_t* in place.

If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.

Definition at line 253 of file strings.hpp.

static void tlx::sort_strings_lcp ( std::vector< const char * > &  strings,
uint32_t *  lcp,
size_t  memory = 0 
)
inlinestatic

Sort a set of strings represented by C-style char* in place.

The strings are sorted as unsigned 8-bit characters, not signed characters! If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.

Definition at line 266 of file strings.hpp.

static void tlx::sort_strings_lcp ( std::vector< const unsigned char * > &  strings,
uint32_t *  lcp,
size_t  memory = 0 
)
inlinestatic

Sort a set of strings represented by C-style uint8_t* in place.

If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.

Definition at line 278 of file strings.hpp.

static void tlx::sort_strings_lcp ( std::string *  strings,
size_t  size,
uint32_t *  lcp,
size_t  memory = 0 
)
inlinestatic

Sort a set of std::strings in place.

The strings are sorted as unsigned 8-bit characters, not signed characters! If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.

Definition at line 293 of file strings.hpp.

static void tlx::sort_strings_lcp ( std::vector< std::string > &  strings,
uint32_t *  lcp,
size_t  memory = 0 
)
inlinestatic

Sort a vector of std::strings in place.

The strings are sorted as unsigned 8-bit characters, not signed characters! If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.

Definition at line 310 of file strings.hpp.

void tlx::stable_parallel_mergesort ( RandomAccessIterator  begin,
RandomAccessIterator  end,
Comparator  comp = Comparator(),
size_t  num_threads = std::thread::hardware_concurrency(),
MultiwayMergeSplittingAlgorithm  mwmsa = MWMSA_DEFAULT 
)

Stable parallel multiway mergesort.

Parameters
beginBegin iterator of sequence.
endEnd iterator of sequence.
compComparator.
num_threadsNumber of threads to use.
mwmsaMultiwayMergeSplittingAlgorithm to use.

Definition at line 361 of file parallel_mergesort.hpp.