Don't understand the merge part of the mergesort
The merge subroutine takes two sorted arrays and creates one sorted array out of these two arrays. It does so in linear time.

Say the sorted arrays are A = [1 2 3] and B = [2 3 4]. Since these two are already sorted, the minimum is going to be either the first element in A or the first element in B. So take the minimum among these two values and append it to the output array C. We get C = [1] and the two arrays now look like A = [2 3] and B = [2 3 4] (you don't have to remove 1 from A, you can increment an index to implement this step).

Now iterate this process until both arrays are empty and the final sorted array is C.