In 1999, McIlroy created an adversary for this algorithm that guarantees that it will run in worst-case time. Its worst-case runtime can be avoided by switching to heapsort after a certain recursion depth, a construction known as introsort. Like mergesort, it is easily parallelizable, and its runtime can be decreased by first selecting the median of the unsorted input list. It was invented by C.A.R. Hoare, and its second phase is the partition function, which splits the original list into lists of elements that are greater or less than the chosen pivot value. For 10 points, identify this divide-and-conquer sorting algorithm which runs in big O of n log n time, named 
In 1999, McIlroy created an adversary for this algorithm that guarantees that it will run in worst-case time. Its worst-case runtime can be avoided by switching to heapsort after a certain recursion depth, a construction known as introsort. Like mergesort, it is easily parallelizable, and its runtime can be decreased by first selecting the median of the unsorted input list. It was invented by C.A.R. Hoare, and its second phase is the partition function, which splits the original list into lists of elements that are greater or less than the chosen pivot value. For 10 points, identify this divide-and-conquer sorting algorithm which runs in big O of n log n time, named for its speed.
In 1999, McIlroy created an adversary for this algorithm that guarantees that it will run in worst-case time.
Quicksort