
126 C Cache-Oblivious Sorting
8. Arge, L., Zeh, N.: Simple and semi-dynamic structures for
cache-oblivious planar orthogonal range searching. In: Sym-
posium on Computational Geometry, pp. 158–166. ACM, New
York (2006)
9. Bender, M., Cole, R., Demaine, E., Farach-Colton, M.: Scan-
ning and traversing: Maintaining data for traversals in a mem-
ory hierarchy. In: Proc. 10th Annual European Symposium
on Algorithms. LNCS, vol. 2461, pp. 139–151. Springer, Berlin
(2002)
10. Bender, M., Cole, R., Raman, R.: Exponential structures for
cache-oblivious algorithms. In: Proc. 29th International Col-
loquium on Automata, Languages, and Programming. LNCS,
vol. 2380, pp. 195–207. Springer, Berlin (2002)
11. Bender, M., Demaine, E., Farach-Colton, M.: Efficient tree layout
in a multilevel memory hierarchy. In: Proc. 10th Annual Euro-
pean Symposium on Algorithms. LNCS, vol. 2461, pp. 165–173.
Springer, Berlin (2002). Full version at http://arxiv.org/abs/cs/
0211010
12. Bender, M.A., Brodal, G.S., Fagerberg, R., Ge, D., He, S., Hu, H.,
Iacono, J., López-Ortiz, A.: The cost of cache-oblivious search-
ing. In: Proc. 44th Annual IEEE Symposium on Foundations of
Computer Science, pp. 271–282. IEEE Computer Society Press,
Los Alamitos (2003)
13. Bender, M.A., Demaine, E.D., Farach-Colton, M.: Cache-obliv-
ious B-trees. In: 41st Annual Symposium on Foundations of
Computer Science, pp. 399–409. IEEE Computer Society Press,
Los Alamitos (2000)
14. Brodal, G.S.: Cache-oblivious algorithms and data structures.
In: Proc. 9th Scandinavian Workshop on Algorithm Theory.
LNCS, vol. 3111, pp. 3–13. Springer, Berlin (2004)
15. Brodal, G.S., Fagerberg, R.: Cache oblivious distribution sweep-
ing. In: Proc. 29th International Colloquium on Automata,
Languages, and Programming. LNCS, vol. 2380, pp. 426–438.
Springer, Berlin (2002)
16. Brodal, G.S., Fagerberg, R.: On the limits of cache-oblivious-
ness. In: Proc. 35th Annual ACM Symposium on Theory of Com-
puting, pp. 307–315. ACM, New York (2003)
17. Brodal, G.S., Fagerberg, R., Meyer, U., Zeh, N.: Cache-oblivi-
ous data structures and algorithms for undirected breadth-
first search and shortest paths. In: Proc. 9th Scandinavian
Workshop on Algorithm Theory. LNCS, vol. 3111, pp. 480–492.
Springer, Berlin (2004)
18. Chowdhury, R.A., Ramachandran, V.: Cache-oblivious shortest
paths in graphs using buffer heap. In: Proc. 16th Annual ACM
Symposium on Parallelism in Algorithms and Architectures.
ACM, New York (2004)
19. Chowdhury, R.A., Ramachandran, V.: Cache-oblivious dynamic
programming. In: Proc. 17th Annual ACM-SIAM Symposium on
Discrete Algorithms, pp. 591–600. ACM-SIAM, New York (2006)
20. Demaine, E.D.: Cache-oblivious algorithms and data struc-
tures. In: Proc. EFF summer school on massive data sets, LNCS.
Springer, Berlin. To appear. Online version at http://theory.
csail.mit.edu/edemaine/papers/BRICS2002/
21. Farzan, A., Ferragina, P., Franceschini, G., Munro, J.I.: Cache-
oblivious comparison-based algorithms on multisets. In: Proc.
13th Annual European Symposium on Algorithms. LNCS,
vol. 3669, pp. 305–316. Springer, Berlin (2005)
22. Frigo, M., Leiserson, C.E., Prokop, H., Ramachandran, S.: Cache
oblivious algorithms. In: 40th Annual IEEE Symposium on
Foundations of Computer Science, pp. 285–298. IEEE Com-
puter Society Press, Los Alamitos (1999)
23. Jampala, H., Zeh, N.: Cache-oblivious planar shortest paths. In:
Proc. 32nd International Colloquium on Automata, Languages,
and Programming. LNCS, vol. 3580, pp. 563–575. Springer,
Berlin (2005)
24. Meyer,U.,Sanders,P.,Sibeyn,J.F.(eds.):AlgorithmsforMem-
ory Hierarchies. LNCS, vol. 2625. Springer, Berlin (2003)
25. Prokop, H.: Cache-oblivious algorithms. Master’s thesis, Mas-
sachusetts Institute of Technology, Dept. of Electrical Engi-
neering and Computer Science (1999)
26. Vitter, J.S.: External memory algorithms and data structures:
Dealing with MASSIVE data. ACM Comput. Surv. 33(2), 209–
271 (2001)
27. Vitter, J.S.: Geometric and spatial data structures in external
memory. In: Mehta, D., Sahni, S. (eds.) Handbook on Data Struc-
tures and Applications. CRC Press, Boca Raton (2005)
Cache-Oblivious Sorting
1999; Frigo, Leiserson, Prokop, Ramachandran
GERTH STØLTING BRODAL
Department of Computer Science, University of Aarhus,
Århus, Denmark
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 sem-
inal paper by Frigo et al. [8] that introduced the cache-
oblivious framework for developing algorithms aimed at
machines with (unknown) hierarchical memory.
Model
In the cache-oblivious setting the computational model
is a machine with two levels of memory: a cache of lim-
ited capacity and a secondary memory of infinite capac-
ity. The capacity of the cache is assumed to be M elements
and data is moved between the two levels of memory in
blocks of B consecutive 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 necessary
block transfers between cache and secondary memory are
handled automatically by the model, assuming an optimal
offline cache replacement strategy. The core assumption of
the cache-oblivious model is that M and B are unknown to