Сортировка четного и нечетного чисел в одной строке


Это вопрос для интервью.

Допустим, у вас есть массив, подобный этому

{54,23,545,65,23,4,1,2,5}

Как отсортировать его и классифицировать как четный или нечетный в одной строке кода?

Порядок сложности ответа должен быть O(1), без использования какого-либо цикла for. Результат должен быть:

{2,4,54,1,5,23,23,65,545}
1 4

1 ответ:

Если создание экземпляра и использование анонимной реализации Comparator можно считать одной строкой:

Arrays.sort(arr, new Comparator<Integer>(){public int compare(Integer o1, Integer o2) {return o1%2 == o2%2 ? o1.compareTo(o2) : (o1%2 == 0 ? -1 : 1); }});

Ideone demo .