cpp merge-sort