Decreasing the Number of Seeks Using Multiple-Step Merges
The expensive part of the MergeSort algorithm is related to all the seeking performed during the reading step of the merge phase. A lot of seeks are involved because of the large number of runs that get merged simultaneously.
In multi-step merging, we do not try to merge all runs at one time. Instead, we break the original set of runs into small groups and merge the runs in these groups separately. More buffer space is available for each run, and, therefore, fewer seeks are required per run).
When all the smaller merges are completed, a second pass merges the new set of merged runs.