mergesort()

perform merge sort 

Function


SYNOPSIS

#include <stdlib.h>

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


DESCRIPTION

The mergesort() 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 mergesort() function requires additional memory of size nmemb * size bytes; it should only be used when space is not at a premium. The algorithm is optimized for data with pre-existing order; its worst case performance is O(n log n); its average performance is O(n). The mergesort() algorithm is a stable sort.


PARAMETERS

base 

Points to the memory to be sorted.

nmemb 

Is the number of objects in memory.

size 

Is the size of each object in memory.

compar 

Is the sorting function.


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 less than (sizeof(void *) / 2).

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:
heapsort(), qsort(), radixsort(), sradixsort()


PTC MKS Toolkit 10.4 Documentation Build 39.