My 2 cents worth.
The issue in my mind is that qsort cannot sort while the data is being read off the disk. By using a balenced tree the
datacan be sorted into partitions while it is being read, then these partitions can be merged.
IMHO this will give the best performance.
I wrote the code to do this years ago and if people want to play with it I suppose I can GPL it. A language conversion
wouldbe required because I didn't have C available - but the code is runnable in its present form.
Last time I benched it was against the DEC system sort routines on a VAX 7800 and it ran quite a bit faster... and this
isin spite of the fact that I had to do many rather UGLY things to fit this code into the constraints I had... IE - it
hadto run under 5 operating systems including MS-DOS and like I said - it <unfortunatly> Isn't written in C.