A sorting Algorithm.
Quicksort is a "divide and conquer" algorithm that works by taking an array, breaking it into two points around a 'pivot' item, and quicksorting both the smaller arrays. On average it needs O(n log(n)) comparisons to sort n items, but in the worst case requires O(n2) comparisons.
The tricky point is deciding which element to use as the pivot.
There is an excellent write up, with psuedocode at WikiPedia:Quicksort.
3 pages link to QuickSort: