...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Making a radix sort
stable requires the usage of an external copy of the data. A stable hybrid
algorithm also requires a stable comparison-based algorithm, and these
are generally slow. LSD radix
sort uses an external copy of the data, and provides stability,
along with likely being faster (than a stable hybrid sort), so that's probably
a better way to go for integer and floating-point types. It might make
sense to make a stable version of
using external memory, but for simplicity this has been left out for now.
string_sort