The document discusses the quicksort algorithm. It begins with an overview of quicksort and how it works. It then goes into more detail about the partition function, providing pseudocode and analyzing its running time. The document analyzes quicksort's average-case running time of O(n log n) by modeling it as a recurrence relation and solving the relation. It also tightly bounds a key summation term in the analysis.