Record Length is 23 bytes unless otherwise stated. These are the fastest general purpose sorts. Note that the pointer version is slower than the regular sort with short records, but faster than the regular sort with long records. On a system with a less efficient calling scheme, the difference would have been greater. Some experimentation was done with the FindPivot section of the QuickSort.
Many books recommend choosing the median of three randomly selected values in the partition.
This complicates writing the median code. This version of FindPivot was a little slower than just choosing the larger of the first two different values. There are other ways of writing the quicksort. Some other versions of quicksort may use the median more effectively. Since this sort works by making one pass over N and two passes over B, the larger of the two will be the primary driver for the sort.