.\" Copyright (c) 1990, 1991 The Regents of the University of California.
.\" %sccs.include.redist.man%
.\" @(#)radixsort.3 5.5 (Berkeley) %G%
.Fn radixsort "u_char **base" "int nmemb" "u_char *table" "u_char endbyte"
is a modified radix sort.
function sorts an array of
pointers to byte strings, the initial member of which is referenced
The byte strings may contain any values; the end of each string
is denoted by the user-specified value
The contents of the array are sorted in ascending order according
order of the byte strings they reference.
Applications may specify a sort order by providing the
must reference an array of
+ 1 bytes which contains the sort
weight of each possible byte value.
The end-of-string byte must have a sort weight of 0.
More than one byte may have the same sort weight.
is useful for applications which wish to sort different characters
equally; for example, providing a table with the same weights
for A-Z as for a-z will result in a case-insensitive sort.
is stable, that is, if two elements compare as equal, their order in
the sorted array is unchanged.
is a variant of most-significant-byte radix sorting; in particular, see
D.E. Knuth's Algorithm R and section 5.2.5, exercise 10.
takes linear time relative to the number of bytes in the strings.
Upon successful completion 0 is returned.
Otherwise, \-1 is returned and the global variable
is set to indicate the error.
for any of the errors specified for the library routine
.%B "The Art of Computer Programming"
.%T "Sorting and Searching"
.%T "Three Partition Refinement Algorithms"
must be less than the maximum integer,