improving qsort