public static void sort(int array[]) { megerSort(array, 0, array.length - 1);}public static void megerSort(int data[], int left, int right) { if (left < right) { int mid = (left + right) / 2; megerSort(data, left, mid); megerSort(data, mid + 1, right); meger(data, left, mid, right); }}public static void meger(int data[], int left, int mid, int right) { int temp[] = new int[data.length]; int point1 = left; int point2 = mid + 1; int loc = left; while (point1 <= mid && point2 <= right) { if (data[point1] < data[point2]) { temp[loc++] = data[point1++]; } else { temp[loc++] = data[point2++]; } } while (point1 <= mid) { temp[loc++] = data[point1++]; } while (point2 <= right) { temp[loc++] = data[point2++]; } for (int i = left; i <= right; i++) { data[i] = temp[i]; }}