While a list is not empty Select the lowest first element remove it from the sub-list place it in the available slot in the new list Place all of the remaining elements in the target list.
Procedure mergesort(A,start,end) (1) if (start < end-1) { (2) split = start+(end-start)/2 (3) mergesort(A,start,split) (4) mergesort(A,split+1,end) (5) merge(A,start,split,end) }