Triple State QuickSort, A replacement for the C/C++ library qsort

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

Triple State QuickSort, A replacement for the C/C++ library qsort

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.


💡 Research Summary

The paper introduces a new industrial‑grade quicksort algorithm intended as a drop‑in replacement for the standard C/C++ library function qsort. The authors identify the limitations of existing quicksort variants—standard single‑pivot quicksort, dual‑pivot quicksort (Yaroslavskiy’s algorithm), and other well‑known implementations—particularly their suboptimal comparison counts, excessive swaps, and poor handling of highly duplicated data. To address these issues, they propose a “Triple‑State Partitioning” scheme that simultaneously creates three regions (less‑than, equal‑to, greater‑than the pivot) during a single linear scan.

The algorithm uses three pointers (i, j, k) to delimit the low, middle, and high regions. As each element a


📜 Original Paper Content

🚀 Synchronizing high-quality layout from 1TB storage...