C Programming/C Reference/stdlib.h/qsort
qsort is a generic function that can sort arrays of any size, containing any kind of object (although, if the objects are not the same in size, pointers have to be used) and using any kind of comparison predicate. The genericity, however, comes at the expense of type-safety, since
qsort operates on void pointers.
void qsort(void *base, size_t nmemb, size_t size, int (*compare)(const void *, const void *));
The contents of the array are sorted in order according to a comparison function pointed to by compare. When items compare equal, their order in resulting array is unspecified, meaning qsort is not required to be a stable sort.
- ISO/IEC 9899:1999 specification. p. 319, § 220.127.116.11. http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf.