import java.util.*;

public enum Sorter {
    TIMSORT {
        public void sort(Object[] array) {
            ComparableTimSort.sort(array);
        }
    },
    MERGESORT {
        public void sort(Object[] array) {
            Arrays.sort(array);
        }
    };

    public abstract void sort(Object[] array);

    public static void warmup() {
        System.out.println("start warm up");
        Integer[] gold = new Integer[10000];
        Random random = new java.util.Random();
        for (int i=0; i < gold.length; i++)
            gold[i] = random.nextInt();

        for (int i=0; i < 10000; i++) {
            for (Sorter s : values()) {
                Integer[] test= gold.clone();
                s.sort(test);
            }
        }
        System.out.println("  end warm up");
    }
}