/** * Sorts list. See MergeSort * * @param list * @param temp * @param low * @param high */ private static <E extends Comparable<? super E>> void sort( ArrayList<E> list, ArrayList<E> temp, int low, int high) { if (low < high) { int center = (low + high) / 2; sort(list, temp, low, center); sort(list, temp, center + 1, high); merge(list, temp, low, center + 1, high); } }