finish merge_sort