heapsort()

perform heap sort on array 

Function


SYNOPSIS

#include <stdlib.h>

int heapsort(void *base, size_t nmemb, size_t size, int (compar)(const void *, const void *));


DESCRIPTION

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.


PARAMETERS

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.


RETURN VALUES

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.


CONFORMANCE

4.4BSD.


MULTITHREAD SAFETY LEVEL

MT-Safe.


PORTING ISSUES

None.


AVAILABILITY

PTC MKS Toolkit for Professional Developers
PTC MKS Toolkit for Professional Developers 64-Bit Edition
PTC MKS Toolkit for Enterprise Developers
PTC MKS Toolkit for Enterprise Developers 64-Bit Edition


SEE ALSO

Functions:
mergesort(), qsort(), radixsort(), sradixsort()


PTC MKS Toolkit 10.3 Documentation Build 39.