add 3-partition quicksort