abstract _swap function
add quick sort 2nd; seems slower than quick sort 1st