Зачем нужна сортировка в программировании

И почему это любят спрашивать на собеседовании.

Зачем нужна сортировка в программировании

Приходишь такой на собеседование, а тебе говорят: «Расскажи про алгоритмы сортировок?» А зачем? А нельзя просто отсортировать и всё? 

Разбираемся. 

Что такое сортировка

Сортировка данных — это когда мы их упорядочиваем по какому-то признаку. 

Например, в школе есть классный журнал, в котором все ученики отсортированы по фамилии. Или товары в интернет-магазине могут выводиться сначала дешёвые, потом дорогие. Или бывает сортировка товаров по популярности: используют внутреннюю переменную «популярность товара» и смотрят на её значение.

Почему нельзя просто отсортировать

Если у вас небольшой и понятный массив, то ничто не мешает взять встроенную функцию языка программирования типа sort() в JavaScript. Она пошуршит каким-то своим алгоритмом и вернёт отсортированный массив. 

Сложности с сортировкой начинаются, когда:

❌ массивы данных большие — на тысячи, десятки и сотни тысяч элементов;

❌ может быть затруднён доступ к данным (например, они идут потоком);

❌ возможностей железа не хватает и нужны более экономные алгоритмы, чем те, которые встроены в язык программирования.

Тогда нужно выбирать специализированные алгоритмы сортировки, а то и оптимизировать их под свои задачи. 

Какие бывают сортировки

Существуют десятки алгоритмов сортировки, каждый из которых хорош в чём-то своём. На одних легко объяснять принципы сортировки, другие хороши при работе с большими массивами, третьи оптимизированы по скорости, четвёртые — по числу процессорных циклов, компактности кода и т. д. 

Самые популярные, которые вы встретите: 

  • Пузырьковая сортировка.
  • Шейкерная.
  • Расчёской.
  • Быстрая сортировка. 
  • Пирамидальная.
  • Сортировка слиянием.

В ближайших статьях покажем примеры. 

Почему про это любят спрашивать на собеседованиях

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

  1. Работодатель хочет посмотреть, какой алгоритм вы выберете, чтобы оценить ваш навык решения конкретных задач. 
  2. Работодатель хочет оценить ваш стиль написания кода: как называете переменные, как оформляете, используете ли комментарии.
  3. Работодатель просто выпендривается и спрашивает это, потому что так написано в модных статьях из серии «Как нанять программиста в стартап».

В целом ничто не мешает натренироваться в вопросах сортировки и показать через это свою эрудированность. 

Что дальше

Впереди много разных видов сортировок — как работают, чем отличаются, где применяются. А главное — мы наглядно покажем, что делают популярные сортировки и почему их назвали именно так.

Текст и иллюстрации:

Михаил Полянин

Художник:

Даня Берковский

Корректор:

Ирина Михеева

Вёрстка:

Кирилл Климентьев

Вам может быть интересно
Flipper Zero: как устроен хакерский тамагочи
Flipper Zero: как устроен хакерский тамагочи

И сколько на нём можно заработать.

easy
Вам мало языка C? Попробуйте C++
Вам мало языка C? Попробуйте C++

Шустрый, мощный, весь обвешан классами.

medium
Зарплата 113 тысяч за то, чтобы ломать программы
Зарплата 113 тысяч за то, чтобы ломать программы

Работа тестировщика как она есть.

easy
Как настроить DLNA на любом устройстве
Как настроить DLNA на любом устройстве

Смотрим фильмы и слушаем музыку в домашней сети

easy
Игра, которая проверяет вашу программистскую логику
Игра, которая проверяет вашу программистскую логику

Разбираем типичное задание на собеседованиях

medium
Синхронизация: как это делают крутые ребята
Синхронизация: как это делают крутые ребята

Какая бывает синхронизация данных и от чего это зависит

medium
Как подключить статистику посещений к сайту
Как подключить статистику посещений к сайту

Рецепт на 8 минут

easy
Дискорд: разбираемся в ситуации как айтишники
Дискорд: разбираемся в ситуации как айтишники

Серверы, устройство и блокировка

easy
Как работает сортировка слиянием
Как работает сортировка слиянием

Одна из самых стабильных сортировок

medium
easy