public class MergeSort extends Sorter { public void merge(int[] F, int u, int m, int o) { int[] temp = new int[ArrayHelper.arraySize]; int i, j, k; for (i = m+1; i > u; i--) { temp[i-1] = F[i-1]; } for (j = m; j < o; j++) { temp[o+m-j] = F[j+1]; } for (k = u; k <= o; k++) { F[k] = (temp[i] < temp[j]) ? temp[i++] : temp[j--]; } } public void mergesort(int[] F, int u, int o) { if (o > u) { int m = (u + o) / 2; mergesort(F, u, m); mergesort(F, m+1, o); merge(F, u, m, o); } } public int[] sort(int[] F) { mergesort(F, 0, F.length-1); return F; } public static void main(String[] args) { int[] F = ArrayHelper.initArray(); MergeSort MS = new MergeSort(); System.out.println(ArrayHelper.toString(F)); System.out.println(ArrayHelper.toString(MS.sort(F))); } }