#include <stdlib.h>
int heapsort(void *base, size_t nmemb,
size_t size,
int (compar)(const void *, const void *));
The heapsort() function sorts an array of
nmemb objects, the initial element of which is pointed to
by base. The size of each object in
bytes is specified by size. The contents of the array are
sorted in ascending order according to a comparison function. The
compar argument is a pointer to the comparison function,
which is called with two arguments that point to the elements
being compared. The function must return an integer less than,
equal to, or greater than 0, if the first argument is considered
respectively less than, equal to, or greater than the second. If two members
compare as equal, their order in the sorted array is unspecified.
The heapsort() function is an implementation of J.W.J.
William's heapsort algorithm, a variant of selection sorting.
The algorithm is taken from Algorithm H in D.E. Knuth's
Sorting and Searching.
It has O(n log n) worst-case performance.
The heapsort() algorithm is not a stable sort.
- base
-
Points to initial element of array to be sorted.
- nmemb
-
Is the number of objects in the array.
- size
-
Is the size of each object in memory.
- compar
-
Is the sorting function to use.
On success, heapsort() returns 0.
On error, it returns -1 and sets errno to one of the following
values:
- EINVAL
-
The size parameter is 0.
- ENOMEM
-
Insufficient memory is available
to implement the sort algorithm.
4.4BSD.
MT-Safe.
None.
MKS Toolkit for Professional Developers
MKS Toolkit for Enterprise Developers
MKS Toolkit for Enterprise Developers 64-Bit Edition
- Functions:
- mergesort(), qsort(), radixsort(), sradixsort()
MKS Toolkit 9.3 Documentation Build 6.