Partition A[p..r] into two non-empty subsequences
A[p..q] and A[q+1..r] such that each element of A[p..q]
is each element of A[q+1..r].
Conquer Sort A[p..q] and A[q+1..r] by recursive calls to Quicksort.
Combine Trivial, arrays are sorted in place.