Encyclopedia of Algorithms

2008 Edition
| Editors: Ming-Yang Kao

Cache-Oblivious Sorting

1999; Frigo, Leiserson, Prokop, Ramachandran
  • Gerth Stølting Brodal
Reference work entry
DOI: https://doi.org/10.1007/978-0-387-30162-4_63

Keywords and Synonyms

Funnel sort      

Problem Definition

Sorting a set of elements is one of the most well-studied computational problems. In the cache‐oblivious setting the first study of sorting was presented in 1999 in the seminal paper by Frigo et al. [8] that introduced the cache‐oblivious framework for developing algorithms aimed at machines with (unknown) hierarchical memory.


In the cache‐oblivious setting the computational model is a machine with two levels of memory: a cache of limited capacity and a secondary memory of infinite capacity. The capacity of the cache is assumed to be M elements and data is moved between the two levels of memory in blocks of Bconsecutive elements. Computations can only be performed on elements stored in cache, i. e. elements from secondary memory need to be moved to the cache before operations can access the elements. Programs are written as acting directly on one unbounded memory, i. e. programs are like standard RAM programs. The...


Range Query Priority Queue Sorting Algorithm Secondary Memory Cache Replacement 
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(9), 1116–1127 (1988)MathSciNetCrossRefGoogle Scholar
  2. 2.
    Arge, L., Bender, M.A., Demaine, E.D., Holland‐Minkley, B., Munro, J.I.: Cache‐oblivious priority queue and graph algorithm applications. In: Proc. 34th Annual ACM Symposium on Theory of Computing, pp. 268–276. ACM Press, New York (2002)Google Scholar
  3. 3.
    Brodal, G.S., Fagerberg, R.: Cache oblivious distribution sweeping. In: Proc. 29th International Colloquium on Automata, Languages, and Programming. Lecture Notes in Computer Science, vol. 2380, pp. 426–438. Springer, Berlin (2002)Google Scholar
  4. 4.
    Brodal, G.S., Fagerberg, R.: On the limits of cache‐obliviousness. In: Proc. 35th Annual ACM Symposium on Theory of Computing, pp. 307–315. ACM Press, New York (2003)Google Scholar
  5. 5.
    Brodal, G.S., Fagerberg, R., Vinther, K.: Engineering a cache‐oblivious sorting algorithm. ACM J. Exp. Algoritmics (Special Issue of ALENEX 2004) 12(2.2), 23 (2007)Google Scholar
  6. 6.
    Department of Computer Science, Duke University. TPIE: a transparent parallel I/O environment. http://www.cs.duke.edu/TPIE/. Accessed 2002
  7. 7.
    Franceschini, G.: Proximity mergesort: Optimal in-place sorting in the cache‐oblivious model. In: Proceedings of the 15th Annual ACM-SIAM Symposium on Discrete Algorithms (SODA), SIAM, p. 291. Philadelphia, 2004Google Scholar
  8. 8.
    Frigo, M., Leiserson, C.E., Prokop, H., Ramachandran, S.: Cache‐oblivious algorithms. In: Proc. 40th Annual Symposium on Foundations of Computer Science, pp. 285–297. IEEE Computer Society Press, Los Alamitos (1999)Google Scholar
  9. 9.
    Hoare, C.A.R.: Quicksort. Comput. J. 5(1), 10–15 (1962)MathSciNetzbMATHCrossRefGoogle Scholar
  10. 10.
    Williams, J.W.J.: Algorithm 232: Heapsort. Commun. ACM 7(6), 347–348 (1964)Google Scholar

Copyright information

© Springer-Verlag 2008

Authors and Affiliations

  • Gerth Stølting Brodal
    • 1
  1. 1.Department of Computer ScienceUniversity of AarhusÅrhusDenmark