17.01.2013 Views

Algorithms and Data Structures for External Memory

Algorithms and Data Structures for External Memory

Algorithms and Data Structures for External Memory

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

140 Dynamic <strong>Memory</strong> Allocation<br />

For sorting, the lower bound approach of Theorem 6.1 implies that<br />

�<br />

2mi logmi =Ω(nlogn). (16.1)<br />

i<br />

We say that P is dynamically optimal <strong>for</strong> sorting if<br />

�<br />

2mi logmi = O(nlogn) (16.2)<br />

i<br />

<strong>for</strong> all possible sequences m1, m2, . . . of memory allocation. Intuitively,<br />

if P is dynamically optimal, no other algorithm can per<strong>for</strong>m more than<br />

a constant number of sorts in the worst-case <strong>for</strong> the same sequence of<br />

memory allocations.<br />

Barve <strong>and</strong> Vitter [71] define the model in generality <strong>and</strong> give dynamically<br />

optimal strategies <strong>for</strong> sorting, matrix multiplication, <strong>and</strong> buffer<br />

tree operations. Their work represents the first theoretical model of<br />

dynamic allocation <strong>and</strong> the first algorithms that can be considered<br />

dynamically optimal. Previous work was done on memory-adaptive<br />

algorithms <strong>for</strong> merge sort [279, 363] <strong>and</strong> hash join [280], but the algorithms<br />

h<strong>and</strong>le only special cases <strong>and</strong> can be made to per<strong>for</strong>m nonoptimally<br />

<strong>for</strong> certain patterns of memory allocation.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!