INF: qsort() Appears Extremely Slow in Worst-Case Situations

ID Number: Q48965

5.00 5.10 6.00 6.00a 6.00ax | 5.10 6.00 6.00a

MS-DOS | OS/2

Summary:

In Microsoft C versions 5.0, 5.1, 6.0, 6.0a, and 6.0ax, when using

qsort() in a worst-case situation (for example, the array is already

sorted in reverse order), the qsort() library routine appears to take

an extremely long time.

More Information:

The qsort() routine provided by Microsoft was optimized for both speed

and stack usage [stack space is important because qsort() is heavily

recursive]. Therefore, in a worst-case situation, which could recurse

up to the number of elements in the list, qsort() sacrifices speed for

stack space. This behavior allows larger lists to be sorted without

stack overflow problems. Furthermore, Microsoft's qsort() routine is

very competitive in sorting random files, the type of array for which

quick sorts are designed.

If used judiciously, Microsoft's qsort() is a very effective sort

routine. In worst-case situations, Microsoft's qsort() is slower than

some other sorting routines, but successfully sorts larger arrays

without stack overflow problems.

Additional reference words: 5.00 5.10 6.00 6.00a 6.00ax