complete mergesort