Summary: I/O-algorithms Spring 2009Project 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 ex-
ternal 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 (includ-
ing your implementation/design choices) and experimental work; The report (including a pointer
to the implementation) should be handed in by Tuesday April 14, 2009. 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
book or from STL.
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):