ThielSort: Implementing the Diverting Fast Radix Algorithm
STUART THIEL, Concordia University, Canada
LARRY THIEL, Concordia University, Canada
GREGORY BUTLER, Concordia University, Canada
This paper presents ThielSort, a practical implementation of the Diverting Fast Radix (DFR) Algorithm. The theoretical improvements
over classical radix sorts are outlined and implementation details are specifed to demonstrate that the algorithm is competitive with
the state of the art. The efectiveness of this implementation of the DFR algorithm is shown by considering a variety of standard
distributions of data and input sizes.
CCS Concepts: · Theory of computation → Sorting and searching; Divide and conquer.
Additional Key Words and Phrases: sorting, radix sort, diverting
ACM Reference Format:
Stuart Thiel, Larry Thiel, and Gregory Butler. 2022. ThielSort: Implementing the Diverting Fast Radix Algorithm. In . ACM, New York,
NY, USA, 13 pages. https://doi.org/XXXXXXX.XXXXXXX
1 INTRODUCTION
Exactly how Radix Sort came to be is unclear. Knuth cite’s Hollerith’s sorting and tabulating machines that were used
in the US Census Ofce of the late 1800s and into the early 1900s[11, p.384] as a solid early example of sorting, but
Cormen et al. summarizes it well with the following[5, p.211]:
Knuth credits H.H. Seward with inventing counting sort in 1954, as well as with the idea of combining
counting sort with radix sort. Radix sorting starting with the least signifcant digit appears to be a folk
algorithm widely used by operators of mechanical card-sorting machines.
Its origins as a folk algorithm, often referenced to the 1880s in terms of mechanical use, the fact that there are both
most and least signifcant favors of the algorithm and even changes in use of language over time lead to some confusion.
In [7], care is taken to distinguish the term digit used in the “Internal Digital Sortingž as separate from the radix, which
need not be 10-based, but they note that it is “...important to recognize that the positions in the control feld must
be considered in order from "least signifcant" to "most signifcant" with each one requring[sic] a separate passž[7,
p.18]. In [23] the standard 8-bit radix is used and the terms least/most-signifcant-bit (LSB/MSB) frst radix sort are
considered, which appears to be easily interpreted as least or most-signifcant-byte, so that form occurs regularly. After
2000, least/most-signifcant-digit (LSD/MSD) radix sort, the terms we use in this paper, becomes more common in spite
of Friend’s careful admonishment on the use of language; in particular Cormen et al.’s analysis of the linear time of
LSD radix sort (though they do not call it exactly that) refers to “ -digit numbers in which each digit can take on up to
possible values.ž
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not
made or distributed for proft or commercial advantage and that copies bear this notice and the full citation on the frst page. Copyrights for components
of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to
redistribute to lists, requires prior specifc permission and/or a fee. Request permissions from permissions@acm.org.
© 2022 Association for Computing Machinery.
Manuscript submitted to ACM
1
arXiv:2207.14334v2 [cs.DS] 1 Aug 2022