The Fn radixsort function sorts an array of Fa nmemb pointers to byte strings, the initial member of which is referenced by Fa base . The byte strings may contain any values; the end of each string is denoted by the user-specified value Fa endbyte . The contents of the array are sorted in ascending order according to the ASCII order of the byte strings they reference.
Applications may specify a sort order by providing the Fa table argument. If non- NULL , Fa table must reference an array of UCHAR_MAX + 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. The Fa table argument 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.
The Fn radixsort function is stable, that is, if two elements compare as equal, their order in the sorted array is unchanged.
The Fn radixsort function 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. The Fn radixsort function takes linear time relative to the number of bytes in the strings.