[−][src]Crate rdx
rdx
is a collection of generic algorithms and traits designed to make using radix sort easier
both for primitive and custom data types.
Radix sort has excellent performance characteristics, but has more requirements on the keys to be sorted, and hence is somewhat rarely used. The goal of this package is to provide easy-to-use radix sort implementations for a variety of types and to make it easy to implement radix sort for your own custom types.
Eventually, we plan to add a hybrid radix-comparison sort so as to allow obtaining the benefits
of radix sorts for compound types in general, even if all the components only satisfy Ord
.
Modules
american_flag_sort | An implementation of american flag sort |
float | Utilities for radix-sorting floating point types |
ska_sort | An implementation of ska sort, based off the code found in the blog post and on GitHub |
std_impls |
|
util | Various utilities for building radix sorts |
Structs
ComparatorSort | A comparator-based unordered sort on a type |
DefaultStrategy | The default radix sort strategy for a type |
KeyBytesOf | Get the key byte function associated with a given key extraction function |
KeyBytesWith | Implements |
KeyStrategy | A key-based unordered sort on a type |
RadixSortStrategyWith | A radix sort strategy with a given byte extraction function and fallback sort |
TrySortWith | Treat a function as a try sort function. Assumes that:
|
Constants
DEFAULT_DELEGATION_SIZE | Default maximum size to delegate array to standard sorting algorithm |
DEFAULT_MAX_DEPTH_THRESHOLD | Default maximum depth threshold to force sorting algorithm switch (to avoid heap allocation) |
Traits
ConstRadixSortKey | A radix sort key known to have a constant key length |
KeyBytes | A trait to get the bytes of a radix sort key |
KeyLength | A radix sort key length function |
RadixSortKey | A key which can be used for radix sorts |
RadixSortStrategy | A strategy for radix sorting a type based off a given ordering |
TrySorter | A sorting function for small arrays of a given type. |
Functions
key_strategy | Create a key-based unordered sorter on a type |