Выбор ответа Junior Объекты и массивы спрашивают часто обновлено

Компаратор для сортировки по убыванию

Вопрос

Какой компаратор корректно отсортирует числа по убыванию?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: (a, b) = b - a. Компаратор должен вернуть отрицательное число, если a идёт раньше b. b - a отрицательно, когда a больше, значит большие числа окажутся впереди. a - b сортирует по возрастанию.

Варианты ответа

  1. (a, b) => a - b
  2. (a, b) => a > b
  3. (a, b) => b - aправильный ответ
  4. (a, b) => a < b

Разбор

Компаратор должен вернуть отрицательное число, если a идёт раньше b. b - a отрицательно, когда a больше, значит большие числа окажутся впереди. a - b сортирует по возрастанию. Компараторы, возвращающие булево, некорректны: true превращается в 1, false в 0, и случай «должно идти раньше» никогда не сигнализируется отрицательным числом. На части данных они случайно работают, на других дают неверный порядок.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.