Quicksort

General Quicksort Algorithm

 * 1) Pick a pivot point and remove it from the list
 * 2) Separate the list into elements that are smaller and larger than the pivot
 * 3) Recursively sort the sublists generated in step 2 using quicksort

Quicksort Pseudocode
function quicksort(list): if the length of the list = 0: //The list is already sorted return list element <- pick some element from list and remove it    smallerThan = [] largerThan = [] for each element in list: if element < pivot: append element to smallerThan else if element >= pivot append element to largerThan    return quicksort(smallerThan) + pivot + quicksort(largerThan)