tutorial qsort explanation