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