nag_quicksort (m01csc) rearranges a vector of arbitrary type objects into ascending or descending order.
nag_quicksort (m01csc) sorts a set of
data objects of arbitrary type, which are stored in the elements of an array at intervals of length
stride. The function may be used to sort a column of a two-dimensional array. Either ascending or descending sort order may be specified.
nag_quicksort (m01csc) is based on Singleton's implementation of the ‘median-of-three’ Quicksort algorithm,
Singleton (1969), but with two additional modifications. First, small subfiles are sorted by an insertion sort on a separate final pass,
Sedgewick (1978). Second, if a subfile is partitioned into two very unbalanced subfiles, the larger of them is flagged for special treatment: before it is partitioned, its end-points are swapped with two random points within it; this makes the worst case behaviour extremely unlikely.
Singleton R C (1969) An efficient algorithm for sorting with minimal storage: Algorithm 347 Comm. ACM 12 185–187
Not applicable.
Not applicable.
The example program reads a two-dimensional array of numbers and sorts the second column into ascending order.