Parallel sorting split array to sort to number of cores sort independently merge independently pairwise bottom up