Software—Practice & Experience
Fast algorithms for sorting and searching strings
SODA '97 Proceedings of the eighth annual ACM-SIAM symposium on Discrete algorithms
Implementing Quicksort programs
Communications of the ACM
A Discipline of Programming
Hi-index | 0.89 |
Bentley and Sedgewick proposed multikey Quicksort with 'split-end' partitioning for sorting strings. But it can be slow in case of many equal elements because it adopted 'split-end' partitioning that moves equal elements to the ends and swaps back to the middle. We present 'collect-center' partitioning to improve multikey Quicksort in that case. It moves equal elements to the middle directly like the 'Dutch National Flag Problem' partitioning approach and it uses two inner loops like Bentley and McIlroy's. In case of many equal elements such as DNA sequences, HTML files, and English texts, multikey Quicksort with 'collect-center' partitioning is faster than multikey Quicksort with 'split-end' partitioning.