  An industrial grade Quicksort function along with its new algorithm is
presented. Compared to 4 other well known implementations of Quicksort, the new
algorithm reduces both the number of comparisons and swaps in most cases while
staying close to the best of the 4 in worst cases. We trade space for
performance, at the price of n/2 temporary extra spaces in the worst case. Run
time tests reveal an overall improvement of at least 15.8% compared to the
overall best of the other 4 functions. Furthermore, our function scores a 32.7%
run time improvement against Yaroslavskiy's new Dual Pivot Quicksort. Our
function is pointer based, which is meant as a replacement for the C/C++
library qsort(). But we also provide an array based function of the same
algorithm for easy porting to different programming languages.
