UniLecs #165. Четная сортировка

UniLecs #165. Четная сортировка

UniLecs

Задача: дан числовой массив. Необходимо отсортировать массив таким образом, чтобы слева располагались в порядке возрастания только четные числа, справа - все нечетные в порядке возрастания (ноль обычно относят к четным числам).

Входные данные: arr - массив целых чисел по модулю не превосходящих 10^5. Размер массива от 1 до 10^5.

Вывод: преобразованный массив.

Пример:

arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Answer: [2, 4, 6, 8, 10, 1, 3, 5, 7, 9]

Идея: применим кастомную реализацию сортировки, а именно особенное условие при сравнении элементов. Сравнивать будем четность/нечетность цифр, а дальше обычное равенство двух чисел! 

Реализация: саму сортировку в данном случае можно выбрать любую. В своей реализации на C# я воспользовался встроенной функцией сортировки, позволяющей добавить свою кастомную проверку элементов. Детали реализации смотри ниже.

C#

https://gist.github.com/unilecs/472732daed653965b776277c825dccd8

Play-test: https://dotnetfiddle.net/c5ZWk8


Решения подписчиков:

Евгений, С++, Python, Ruby

https://gist.github.com/jin-x/09302b072e7d8ad227b0b591b4f549e2

Test: https://repl.it/@jin_x/UniLecs-165-evensortcpp

Report Page