C Programming/stdlib.h/qsort

From Wikibooks, open books for an open world
Jump to navigation Jump to search

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 | edit source]

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

Behaviour[edit | edit source]

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 | edit source]

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

External links[edit | edit source]