QUICKSORT(ARRAY, left, right) IF left < right p = PARTITION(ARRAY, left, right) QUICKSORT(ARRAY, left, p - 1) QUICKSORT(ARRAY, p + 1, right) PARTITION(ARRAY, left, right) pivot = ARRAY[right]; boundary = left - 1 FOR j = left to right - 1 IF(ARRAY[j] <= pivot) boundary++ EXCHANGE(ARRAY[boundary] with ARRAY[j]) EXCHANGE(ARRAY[boundary + 1] with ARRAY[right]) return boundary + 1