fileMerge(inFile, outFile, runLength, N)
{
inf1 = open inFile for reading
inf2 = open inFile for reading
outf = open outFile for writing
in1 = 0; in2 = runLength
while (in1 < N) {
seek to position in1 in inf1
end1 = in1+runLength
it1 = getItem(inf1)
seek to position in2 in inf2
end2 = in2+runLength
it2 = getItem(inf2)
while (in1 < end1 && in2 < end2) {
if (less(it1,it2)) {
write it1 to outf
it1 = getItem(inf1); in1++
}
else {
write it2 to outf
it2 = getItem(inf2); in2++
}
}
while (in1 < end1) {
write it1 to outf
it1 = getItem(inf1); in1++
}
while (in2 < end2) {
write it1 to outf
it1 = getItem(inf1); in1++
}
in1 += runLength; in2 += runLength;
}
}
|