First, decomposition: the sequence of n elements to be sorted is decomposed into two sub-sequences, each of which consists of N/2 elements.
Second, governance: Call merge sort mergesort for each subsequence, and perform recursive operations
Third, merging: Merging two ordered sub-sequences to produce sorted results.
Code from Codego.net:
public static void MergeSort (int[] A, int[] tmp, int left, int. right) { if (left < right) { INT mid = left + (right-left)/2; MergeSort (A, TMP, left, mid),///To sort mergesort (A, TMP, MID + 1, right);//Sort &NB Sp Merge (A, TMP, left, Mid + 1, right);//around merge } } public static void merge (Int[] A, int[] TMP, int left, int rightpos, int right) { int leftend = rightPos-1; in T tmppos = left; int num = right-left + 1; while (left <= leftend && rightpos <= right) { if (A[left] < A[RIGHTPO S]) { tmp[tmppos++] = a[left++], } else { TMP [tmppos++] = a[rightpos++]; } } while (left <= leftend) { tmp[tmppos++] = A[l eft++]; while (Rightpos <= right) { tmp[tmppos++] = a[rightpos++]; &N Bsp } for (int i = 0; i < num; i++, right--) { a[right] = Tmp[right]; } &N Bsp }
Java implementation Merge sort algorithm