C Programming/stdlib.h/qsort

qsort is a function used to sort elements in an array. It is named after the quicksort algorithm, although the C standard does not require it to be implemented using any specific algorithm.[1]

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.

Prototype

edit
void qsort(void *base, size_t nmemb, size_t size, int (*compare)(const void *, const void *));

Behaviour

edit

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.

References

edit
  1. ISO/IEC 9899:1999 specification (PDF). p. 319, § 7.20.5.2.
edit