sorting: cleaner quicksort