Summary: I/O-algorithms Spring 2007Project 2 -- I/O-efficient heap and heap-sort
The goal of this project is to implement and experiment with an I/O-efficient heap and with
external heap-sort. The project should be done in the same groups as project 1. As project 1,
it should be programmed in C or C++. The project is intentionally left somewhat open, and an
important part of the project is to write a report that describes your implementation (including
your implementation/design choices) and experimental work; The report (including a pointer to
the implementation) should be handed in by Wednsday April 11, 2007. The evaluation of the
implementation, experimentation and the report will be part of the final grade.
As in project 1, you should use the Heap, Heapsort and Quicksort code from the Sedgewick
1. Implement the I/O-efficient heap described in the paper by Fadel et al. . You do not have
to follow their description exactly, as long as the I/O-complexity of the insert and deletemax
operations remain O( 1
B ) amortized. Try to make your implementation as practically
efficient as possible.
Implement the I/O-specific part of the data structure (particularly partial merge) in at least
three different ways (similar to project 1):