Click here to Skip to main content
15,892,072 members
Articles / Programming Languages / C++11

An Efficient Parallel Three-Way Quicksort Using Intel C++ Compiler And OpenMP 4.5 Library

Rate me:
Please Sign up or sign in to vote.
4.88/5 (87 votes)
6 May 2020CPOL7 min read 134.2K   2.2K   118  
In this article, I’d like to introduce the modern code in C++11, implementing the parallel three-way quicksort, which is asymptotically faster and more efficient than the famous heapsort and mergesort algorithms.
According to the latest research, the qsort(…) (ANSI C) and std::sort(…) (ISO/IEC 14882(E)) functions are no longer the fastest implementations of the famous quicksort algorithm. Its performance significantly degrades while using it for the big-data sorting. To benefit in sorting of the big-data, we obviously need a different approach that allows to increase the overall performance of the the classical quicksort over its known shortcomings and limitations.

Views

Daily Counts

Downloads

Weekly Counts

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer (Senior) EpsilonDev
Ukraine Ukraine
I’m software developer, system analyst and network engineer, with over 20 years experience, graduated from L’viv State Polytechnic University and earned my computer science and information technology master’s degree in January 2004. My professional career began as a financial and accounting software developer in EpsilonDev company, located at L’viv, Ukraine. My favorite programming languages - C/C++, C#.NET, Java, ASP.NET, Node.js/JavaScript, PHP, Perl, Python, SQL, HTML5, etc. While developing applications, I basically use various of IDE’s and development tools, including Microsoft Visual Studio/Code, Eclipse IDE for Linux, IntelliJ/IDEA for writing code in Java. My professional interests basically include data processing and analysis algorithms, artificial intelligence and data mining, system analysis, modern high-performance computing (HPC), development of client-server web-applications using various of libraries, frameworks and tools. I’m also interested in cloud-computing, system security audit, IoT, networking architecture design, hardware engineering, technical writing, etc. Besides of software development, I also admire to write and compose technical articles, walkthroughs and reviews about the new IT- technological trends and industrial content. I published my first article at CodeProject in June 2015.

Comments and Discussions