COHERENT manpages

This page displays the COHERENT manpage for shellsort() [Sort arrays in memory].

List of available manpages
Index


shellsort() -- General Function (libc)

Sort arrays in memory
void shellsort(data, n, size, comp)
char *data; int n, size; int (*comp)();

shellsort()  is  a generalized  algorithm  for sorting  arrays  of data  in
memory,  using D.  L.  Shell's sorting  method.  shellsort()  works with  a
sequential array  of memory called data,  which is divided into  n parts of
size bytes  each.  In  practice, data  is usually an  array of  pointers or
structures, and size is the sizeof the pointer or structure.

Each routine  compares pairs of items and exchanges  them as required.  The
user-supplied routine to which  comp points performs the comparison.  It is
called repeatedly, as follows:

    (*comp)(p1, p2)
    char *p1, *p2;

Here, p1 and p2 each point  to a block of size bytes in the data array.  In
practice, they are usually  pointers to pointers or pointers to structures.
The comparison  routine must return  a negative, zero,  or positive result,
depending  on whether  p1  is less  than,  equal to,  or  greater than  p2,
respectively.

Example

For an example of how to use this routine, see the entry for string.

See Also

libc,
qsort()
The Art of Computer Programming, vol. 3, pp. 84ff, 114ff

Notes

For a discussion  of how the shellsort algorithm differs  from that used by
qsort(), see the Lexicon entry for qsort().