{16, 21, 45, 8, 11, 53, 3, 26, 49, 31, 12)
Trace the execution of the quicksort algorithm over the array above, using the first element as the pivot. Show each pass of the algorithm, with the pivot selection and partitioning, and the state of the array as/after the partition is performed, until the array is sorted. You do not need to show details of partitioning calls over ranges of only 1 or 2 elements.