Improving the recursive (top-down) merge sort algorithm