improve quick sort