first quicksort implementation