Encyclopedia of Algorithms

2008 Edition
| Editors: Ming-Yang Kao

String Sorting

1997; Bentley, Sedgewick
  • Rolf Fagerberg
Reference work entry
DOI: https://doi.org/10.1007/978-0-387-30162-4_408

Keywords and Synonyms

Sorting of multi-dimensional keys; Vector sorting    

Problem Definition

The problem is to sort a set of strings into lexicographical order. More formally: A string over an alphabet Σ is a finite sequence \( { x_1 x_2 x_3 \dots x_k } \)


Binary Tree Lexicographical Order External Memory Internal Memory Memory Hierarchy 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
This is a preview of subscription content, log in to check access.

Recommended Reading

  1. 1.
    Aggarwal, A., Vitter, J.S.: The input/output complexity of sorting and related problems. Commun. ACM 31, 1116–1127 (1988)MathSciNetCrossRefGoogle Scholar
  2. 2.
    Andersson, A., Nilsson, S.: A new efficient radix sort. In: Proceedings of the 35th Annual Symposium on Foundations of Computer Science (FOCS '94), IEEE Comput. Soc. Press, pp. 714–721 (1994)Google Scholar
  3. 3.
    Andersson, A., Nilsson, S.: Implementing radixsort. ACM J. Exp. Algorithmics 3, 7 (1998)Google Scholar
  4. 4.
    Arge, L., Ferragina, P., Grossi, R., Vitter, J.S.: On sorting strings in external memory (extended abstract). In: Proceedings of the 29th Annual ACM Symposium on Theory of Computing (STOC '97), ACM, ed., pp. 540–548. ACM Press, El Paso (1997),CrossRefGoogle Scholar
  5. 5.
    Bentley, J., Sedgewick, R.: Algorithm alley: Sorting strings with three-way radix quicksort. Dr. Dobb's J. Softw. Tools 23, 133–134, 136–138 (1998)Google Scholar
  6. 6.
    Bentley, J.L., McIlroy, M.D.: Engineering a sort function. Softw. Pract. Exp. 23, 1249–1265 (1993)CrossRefGoogle Scholar
  7. 7.
    Fagerberg, R., Pagh, A., Pagh, R.: External string sorting: Faster and cache-oblivious. In: Proceedings of STACS '06. LNCS, vol. 3884, pp. 68–79. Springer, Marseille (2006)Google Scholar
  8. 8.
    Franceschini, G., Grossi, R.: A general technique for managing strings in comparison-driven data structures. In: Proceedings of the 31st International Colloquium on Automata, Languages and Programming (ICALP '04). LNCS, vol. 3142, pp. 606–617. Springer, Turku (2004)Google Scholar
  9. 9.
    Franceschini, G., Grossi, R.: Optimal in-place sorting of vectors and records. In: Proceedings of the 32nd International Colloquium on Automata, Languages and Programming (ICALP '05). LNCS, vol. 3580, pp. 90–102. Springer, Lisbon (2005)Google Scholar
  10. 10.
    Grossi, R., Italiano, G.F.: Efficient techniques for maintaining multidimensional keys in linked data structures. In: Proceedings of the 26th International Colloquium on Automata, Languages and Programming (ICALP '99). LNCS, vol. 1644, pp. 372–381. Springer, Prague (1999)Google Scholar
  11. 11.
    Han, Y., Thorup, M.: Integer sorting in \( { {O}(n\sqrt{\log\log n}) } \) expected time and linear space. In: Proceedings of the 43rd Annual Symposium on Foundations of Computer Science (FOCS '02), pp. 135–144. IEEE Computer Society Press, Vancouver (2002)Google Scholar
  12. 12.
    McIlroy, P.M., Bostic, K., McIlroy, M.D.: Engineering radix sort. Comput. Syst. 6, 5–27 (1993)Google Scholar
  13. 13.
    Mehlhorn, K.: Dynamic binary search. SIAM J. Comput. 8, 175–198 (1979)MathSciNetzbMATHCrossRefGoogle Scholar
  14. 14.
    Sedgewick, R.: Algorithms in Java, Parts 1–4, 3rd edn. Addison-Wesley, (2003)Google Scholar
  15. 15.
    Sedgewick, R., Bentley, J.: Fast algorithms for sorting and searching strings. In: Proceedings of the 8th Annual ACM-SIAM Symposium on Discrete Algorithms (SODA '97), ACM, ed., pp. 360–369. ACM Press, New Orleans (1997)Google Scholar
  16. 16.
    Sinha, R., Zobel, J., Ring, D.: Cache-efficient string sorting using copying. ACM J. Exp. Algorithmics. 11 (2006)Google Scholar

Copyright information

© Springer-Verlag 2008

Authors and Affiliations

  • Rolf Fagerberg
    • 1
  1. 1.Department of Mathematics and Computer ScienceUniversity of Southern DenmarkOdenseDenmark