MergeSort algorithm