Sorting algorithms: quick sort