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