[][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

RadixSortKey implementations for standard-library types. Only included if the std feature is enabled.

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 KeyBytes<K> given a key length and a getter for key bytes

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: true is returned if and only if the input array is sorted The input array can be permuted arbitrarily, but no elements may be changed If force is true, then the input array must always be sorted

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