first quicksort implemention