@Override
    public List<Integer> sort(List<Integer> list) {

        // checking input parameter for null
        if (list == null) {
            throw new IllegalArgumentException("ArrayList not specified!");
        }

        // converting to array
        numbers = new Integer[list.size()];
        list.toArray(numbers);

        int number = list.size();

        helper = new Integer[number];

        return processArrays(0, number - 1);
    }