partial mergesort