sort4(array, start end); if (start < end) { split(array, start, end, pivot) sort4(array, start, pivot-1); sort4(array, pivot+1, end); } split(array, start, end pivot) pick a pivot move everything larger than the pivot to the top of the array move everything smaller than the pivot to the bottom of the array put the pivot between the two