## Implementing Radixsort (1998)

Venue: | ACM Jour. of Experimental Algorithmics |

Citations: | 17 - 1 self |

### BibTeX

@ARTICLE{Andersson98implementingradixsort,

author = {Arne Andersson and Stefan Nilsson},

title = {Implementing Radixsort},

journal = {ACM Jour. of Experimental Algorithmics},

year = {1998},

volume = {3},

pages = {7}

}

### Years of Citing Articles

### OpenURL

### Abstract

We present and evaluate several new optimization and implementation techniques for string sorting. In particular, we study a recently published radix sorting algorithm, Forward radixsort, that has a provably good worst-case behavior. Our experimental results indicate that radix sorting is considerably faster (often more than twice as fast) than comparison-based sorting methods. This is true even for small input sequences. We also show that it is possible to implement a radix sort with good worst-case running time without sacrificing average-case performance. Our implementations are competitive with the best previously published string sorting algorithms. Code, test data, and test results are available from the World Wide Web. 1. Introduction Radix sorting is a simple and very efficient sorting method that has received too little attention. A common misconception is that a radix sorting algorithm either has to inspect all the characters of the input or use an inordinate amount of extra...

### Citations

8513 |
Introduction to algorithms
- Gormen, Leiserson, et al.
- 1990
(Show Context)
Citation Context ...rst and second position, respectively, we only need to inspect n 1 n 2 buckets. For ASCII-text this number is typically much smaller than the total 65536 buckets. 4. Forward Radixsort Several authors =-=[5, 13, 15]-=- have pointed out that MSD radixsort has a bad worst-case performance due to fragmentation of the data into many small sublists. In this section we present a simple MSD radixsort algorithm, Forward ra... |

616 |
Text compression
- Bell, Cleary, et al.
- 1990
(Show Context)
Citation Context ...cket scheme. To get more realistic timings we have chosen to use samples of real text. Experiments were performed on a collection of standard texts from the Calgary/Canterbury text compression corpus =-=[2]-=-. We used all text files within this corpus and each line of the input constitutes one key. Since all of these files are relatively small we have also used a number of freely availably non-copyrighted... |

353 |
Three partition refinement algorithms
- Paige, Tarjan
- 1987
(Show Context)
Citation Context ...ain virtue of Forward radixsort is its simplicity. The time bound of Corollary 1 was also derived by Paige and Tarjan using a different and more complicated Implementing Radixsort \Delta 9 algorithm [=-=Paige and Tarjan 1987-=-]. Their algorithm first constructs an explicit unordered path-compressed trie structure. During this construction the edges of the trie are put into buckets according to the characters associated wit... |

162 | Handbook of Algorithms and Data Structures - Gonnet - 1984 |

146 | Fast algorithms for sorting and searching strings
- Bentley, Sedgewick
- 1997
(Show Context)
Citation Context ...that is encountered, to reduce the number of buckets that needs to be inspected. This typically works well for text files in ASCII format. Another solution, recently proposed by Bentley and Sedgewick =-=[4]-=-, is to replace bucket sort by a comparison-based method. They present their new algorithm as a variation of quicksort, where the string comparisons have been replaced by appropriate character compari... |

57 | Engineering a sort function
- Bentley, McIlroy
- 1993
(Show Context)
Citation Context ...me measurements for MSD radixsort, Adaptive radixsort, and Forward radixsort with 8-bit and 16-bit alphabets. Furthermore, we make comparisons with the quicksort implementation of Bentley and McIlroy =-=[3]-=-, the radixsort implementations of McIlroy, Bostic, and McIlroy [14], and the Multikey quicksort algorithm by Bentley and Sedgewick [4]. These results are harder to interpret since these algorithms us... |

31 | Sorting and Searching, Volume 1 of Data Structures and Algorithms - Mehlhorn - 1984 |

30 | A new efficient radix sort
- Andersson, Nilsson
- 1994
(Show Context)
Citation Context ...r average data. In this article we show that it is possible to implement radix sorting in such a way as to guarantee also good worst-case behavior. This is achieved by an algorithm, Forward radixsort =-=[1]-=-, that combines the advantages of traditional LSD and MSD radixsort. Before going into details we would like to remind the reader of these two algorithms. LSD radixsort sorts the strings in several st... |

20 |
Algorithms and Data Structures: Design, Correctness, Analysis
- Kingston
- 1990
(Show Context)
Citation Context ...rst and second position, respectively, we only need to inspect n 1 n 2 buckets. For ASCII-text this number is typically much smaller than the total 65536 buckets. 4. Forward Radixsort Several authors =-=[5, 13, 15]-=- have pointed out that MSD radixsort has a bad worst-case performance due to fragmentation of the data into many small sublists. In this section we present a simple MSD radixsort algorithm, Forward ra... |

14 | Engineering radix sort
- McIlroy, Bostic
- 1993
(Show Context)
Citation Context ... the characters of the input or use an inordinate amount of extra time or space. However, with a careful implementation efficient implementations are possible as has been shown by several researchers =-=[6, 14]-=-. In fact, radix sorting can be implemented to run considerably faster than strictly comparison-based sorting for average data. In this article we show that it is possible to implement radix sorting i... |

10 |
Sorting by distributive partitioning
- Dobosiewicz
- 1978
(Show Context)
Citation Context ...marily for sorting real numbers. The resulting algorithm is extremely simple, has a good expected running time for a large class of distributions, and works very well in practice. In 1978 Dobosiewicz =-=[8]-=- presented a sorting algorithm based on distributive partitioning. The algorithm sorts n real numbers by distributing them into n intervals of equal width. The process is repeated recursively for each... |

8 |
Searching and sorting real numbers
- Ehrlich
- 1981
(Show Context)
Citation Context ...r of keys. By combining this approach with a standard Quicksort partitioning step Dobosiewicz gets a sorting algorithm with O(n) expected time for uniform data and O(n log n) worst-case time. Ehrlich =-=[9]-=- also presents several searching and sorting algorithms based on the idea of distributive partitioning. In particular, he defines a new data structure: the N-tree. At the root the N-tree partitions th... |

7 |
Analysis of N-trees
- Tamminen
- 1983
(Show Context)
Citation Context ...itioning methods is well understood. There is a close relationship between N-trees and Adaptive radixsort. The algorithm performs at most O(n) work at each level of the corresponding N-tree. Tamminen =-=[16]-=- has shown that the expected average depth of an N-tree is at most 1.8 for uniformly distributed data and hence Adaptive radixsort runs in linear expected time. In fact, the expected average depth is ... |

7 |
Two Levels are as Good as Any
- Tamminen
- 1985
(Show Context)
Citation Context ...a very good model of real data. In text strings, for example, duplicate keys or long repetitions are likely to occur. For a more detailed average case analysis of bucket algorithms see [Devroye 1985; =-=Tamminen 1985-=-]. Our implementation of Adaptive radixsort uses two different alphabet sizes: 8 bits and 16 bits. The details of the implementation are the same as for standard MSD radixsort. However, for larger alp... |

2 |
A fast radix sort
- Davis
- 1992
(Show Context)
Citation Context ... the characters of the input or use an inordinate amount of extra time or space. However, with a careful implementation efficient implementations are possible as has been shown by several researchers =-=[6, 14]-=-. In fact, radix sorting can be implemented to run considerably faster than strictly comparison-based sorting for average data. In this article we show that it is possible to implement radix sorting i... |

1 | Sorting and Searching, vol 1 of Data Structures and Algorithms - Mehlhorn - 1984 |