Приходишь такой на собеседование, а тебе говорят: «Расскажи про алгоритмы сортировок?» А зачем? А нельзя просто отсортировать и всё?
Разбираемся.
Что такое сортировка
Сортировка данных — это когда мы их упорядочиваем по какому-то признаку.
Например, в школе есть классный журнал, в котором все ученики отсортированы по фамилии. Или товары в интернет-магазине могут выводиться сначала дешёвые, потом дорогие. Или бывает сортировка товаров по популярности: используют внутреннюю переменную «популярность товара» и смотрят на её значение.
Почему нельзя просто отсортировать
Если у вас небольшой и понятный массив, то ничто не мешает взять встроенную функцию языка программирования типа sort() в JavaScript. Она пошуршит каким-то своим алгоритмом и вернёт отсортированный массив.
Сложности с сортировкой начинаются, когда:
❌ массивы данных большие — на тысячи, десятки и сотни тысяч элементов;
❌ может быть затруднён доступ к данным (например, они идут потоком);
❌ возможностей железа не хватает и нужны более экономные алгоритмы, чем те, которые встроены в язык программирования.
Тогда нужно выбирать специализированные алгоритмы сортировки, а то и оптимизировать их под свои задачи.
Какие бывают сортировки
Существуют десятки алгоритмов сортировки, каждый из которых хорош в чём-то своём. На одних легко объяснять принципы сортировки, другие хороши при работе с большими массивами, третьи оптимизированы по скорости, четвёртые — по числу процессорных циклов, компактности кода и т. д.
Самые популярные, которые вы встретите:
- Пузырьковая сортировка.
- Шейкерная.
- Расчёской.
- Быстрая сортировка.
- Пирамидальная.
- Сортировка слиянием.
В ближайших статьях покажем примеры.
Почему про это любят спрашивать на собеседованиях
На собеседовании вам могут предложить либо выбрать сортировочный алгоритм под задачу, либо реализовать его для конкретных данных. Зачем это:
- Работодатель хочет посмотреть, какой алгоритм вы выберете, чтобы оценить ваш навык решения конкретных задач.
- Работодатель хочет оценить ваш стиль написания кода: как называете переменные, как оформляете, используете ли комментарии.
- Работодатель просто выпендривается и спрашивает это, потому что так написано в модных статьях из серии «Как нанять программиста в стартап».
В целом ничто не мешает натренироваться в вопросах сортировки и показать через это свою эрудированность.
Что дальше
Впереди много разных видов сортировок — как работают, чем отличаются, где применяются. А главное — мы наглядно покажем, что делают популярные сортировки и почему их назвали именно так.