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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Что дальше

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

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

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

Художник:

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

Корректор:

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

Вёрстка:

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

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Вам может быть интересно
Flipper Zero: как устроен хакерский тамагочи

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

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

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

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

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

easy
Что такое отжиг и зачем его имитировать

Рассказываем про алгоритм, на котором учат половину нейросетей

hard
Как на самом деле работает Wi-Fi

Пособие для тех, кому нужно больше, чем пароль.

easy
Кулинарные термины в ИТ

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

easy
Как устроен Юникод и зачем он нужен (в том числе и вам)

Таблица со всеми символами мира

easy
Мобильная разработка для iOS и Android — что лучше и с чего начать?

Статья для тех, кто не знает, что выбрать

Как работает Matter и другие протоколы умного дома

И почему нельзя всё подключить по Wi-Fi

easy
easy
[anycomment]
Exit mobile version