darcy@druid.uucp (D'Arcy J.M. Cain) (04/13/90)
I wrote a program in C which has a section that sorts a large file. It tries to allocate enough space to load all the keys into memory and if that fails it does the sort on disk. On my Unix box I always have enough room to load all the keys. On the messy-Dos box I never have enough. The Dos box also has a much slower disk and no disk caching. All of this led me to expect the sort to go faster on the Unix box and that is the case but I was unprepared for the actual extent of the difference. The Dos machine took 6 hours while the Unix took 9 seconds !!!!! I thought there must be more to it so I did a few test and found that the Unix qsort only had to do 141,096 compares while the Dos needed 548,698. I guess the Turbo C implementation is slightly :-) less efficient than the Unix one. So now my question. Is there a PD version of a quicksort routine which is as good as the Unix version or better? In fact if someone can point me to a better routine than quicksort all the better. I am using ESIX which is an AT&T Sys5 3.2 port. The data I am sorting is alpha-numeric keyed. -- D'Arcy J.M. Cain (darcy@druid) | Government: D'Arcy Cain Consulting | Organized crime with an attitude West Hill, Ontario, Canada | (416) 281-6094 |