The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
The art of computer programming, volume 2 (3rd ed.): seminumerical algorithms
The art of computer programming, volume 2 (3rd ed.): seminumerical algorithms
The art of computer programming, volume 3: (2nd ed.) sorting and searching
The art of computer programming, volume 3: (2nd ed.) sorting and searching
Samplesort: A Sampling Approach to Minimal Storage Tree Sorting
Journal of the ACM (JACM)
Structured Programming with go to Statements
ACM Computing Surveys (CSUR)
Some performance tests of “quicksort” and descendants
Communications of the ACM
Sorting in a paging environment
Communications of the ACM
Algorithms 402: Increasing the efficiency of quicksort
Communications of the ACM
Algorithm 347: an efficient algorithm for sorting with minimal storage [M1]
Communications of the ACM
Certification of Algorithm 271: Quickersort
Communications of the ACM
Communications of the ACM
Algorithms + Data Structures = Programs
Algorithms + Data Structures = Programs
Programming languages and their compilers: Preliminary notes
Programming languages and their compilers: Preliminary notes
A Benchmark Parallel Sort for Shared Memory Multiprocessors
IEEE Transactions on Computers
Compiling C* programs for a hypercube multicomputer
PPEALS '88 Proceedings of the ACM/SIGPLAN conference on Parallel programming: experience with applications, languages and systems
Parallel Quicksort Using Fetch-And-Add
IEEE Transactions on Computers
Minimal space, average linear time duplicate deletion
Communications of the ACM
Implementing partition on vector computers
ICS '91 Proceedings of the 5th international conference on Supercomputing
Parallel Quicksort in hypercubes
SAC '92 Proceedings of the 1992 ACM/SIGAPP symposium on Applied computing: technological challenges of the 1990's
A new sort algorithm: self-indexed sort
ACM SIGPLAN Notices
Fast algorithms for sorting and searching strings
SODA '97 Proceedings of the eighth annual ACM-SIAM symposium on Discrete algorithms
The influence of caches on the performance of sorting
SODA '97 Proceedings of the eighth annual ACM-SIAM symposium on Discrete algorithms
Quicksort algorithms with an early exit for sorted subfiles
CSC '87 Proceedings of the 15th annual conference on Computer Science
Implementation of the Gibbs-Poole-Stockmeyer and Gibbs-King Algorithms
ACM Transactions on Mathematical Software (TOMS)
Programming pearls: how to sort
Communications of the ACM
Improving memory performance of sorting algorithms
Journal of Experimental Algorithmics (JEA)
Performance engineering case study: heap construction
Journal of Experimental Algorithmics (JEA)
Computing in Science and Engineering
Balanced Parallel Sort on Hypercube Multiprocessors
IEEE Transactions on Parallel and Distributed Systems
An Improvement on Tree Selection Sort
ALENEX '02 Revised Papers from the 4th International Workshop on Algorithm Engineering and Experiments
Performance Engineering Case Study: Heap Construction
WAE '99 Proceedings of the 3rd International Workshop on Algorithm Engineering
QuickHeapsort, an Efficient Mix of Classical Sorting Algorithms
CIAC '00 Proceedings of the 4th Italian Conference on Algorithms and Complexity
Impact of PCI-Bus Load on Applications in a PC Architecture
RTSS '03 Proceedings of the 24th IEEE International Real-Time Systems Symposium
A Dynamically Tuned Sorting Library
Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization
Optimizing Sorting with Genetic Algorithms
Proceedings of the international symposium on Code generation and optimization
Computational Statistics & Data Analysis
Experience with Multiprocessor Algorithms
IEEE Transactions on Computers
An experimental study of sorting and branch prediction
Journal of Experimental Algorithmics (JEA)
On the adaptiveness of Quicksort
Journal of Experimental Algorithmics (JEA)
A Practical Quicksort Algorithm for Graphics Processors
ESA '08 Proceedings of the 16th annual European symposium on Algorithms
OpenMP tasks in IBM XL compilers
CASCON '08 Proceedings of the 2008 conference of the center for advanced studies on collaborative research: meeting of minds
Electronic Notes in Theoretical Computer Science (ENTCS)
Improving multikey Quicksort for sorting strings with many equal elements
Information Processing Letters
On Smoothed Analysis of Quicksort and Hoare's Find
COCOON '09 Proceedings of the 15th Annual International Conference on Computing and Combinatorics
OpenMP tasking analysis for programmers
CASCON '09 Proceedings of the 2009 Conference of the Center for Advanced Studies on Collaborative Research
Algorithms for memory hierarchies: advanced lectures
Algorithms for memory hierarchies: advanced lectures
Short Communication: Asynchronous parallel merging
Parallel Computing
Algorithm engineering: bridging the gap between algorithm theory and practice
Algorithm engineering: bridging the gap between algorithm theory and practice
Original historical sources in data structures and algorithms courses
Journal of Computing Sciences in Colleges
Reoptimization in Lagrangian methods for the 0-1 quadratic knapsack problem
Computers and Operations Research
Computer Languages
A note on dominance relation in unbounded knapsack problems
Operations Research Letters
Average case analysis of java 7's dual pivot quicksort
ESA'12 Proceedings of the 20th Annual European conference on Algorithms
Optimal partitioning for dual pivot quicksort
ICALP'13 Proceedings of the 40th international conference on Automata, Languages, and Programming - Volume Part I
Hi-index | 48.26 |
This paper is a practical study of how to implement the Quicksort sorting algorithm and its best variants on real computers, including how to apply various code optimization techniques. A detailed implementation combining the most effective improvements to Quicksort is given, along with a discussion of how to implement it in assembly language. Analytic results describing the performance of the programs are summarized. A variety of special situations are considered from a practical standpoint to illustrate Quicksort's wide applicability as an internal sorting method which requires negligible extra storage.