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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Что дальше

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

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

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

Художник:

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

Корректор:

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

Вёрстка:

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

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

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

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

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

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

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

easy
Как работает авторегистрация пользователя на сайтах
Как работает авторегистрация пользователя на сайтах

Это когда только зашёл на сайт и сразу получил аккаунт без регистрации

medium
Как работает 3D-принтер
Как работает 3D-принтер

И что можно на нём напечатать.

easy
Как устроен архив интернета и как им пользоваться
Как устроен архив интернета и как им пользоваться

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

easy
Объяснение асимметричного шифрования без математики
Объяснение асимметричного шифрования без математики

Чтобы лучше понять принцип работы.

easy
Как программисту отличить выгорание от стресса и усталости
Как программисту отличить выгорание от стресса и усталости

Проводим самодиагностику

easy
Трудно ли научиться программированию
Трудно ли научиться программированию

Статья для всех сомневающихся

easy
easy