easy

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Что дальше

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

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

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

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

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

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

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

easy
Что происходит, когда мы открываем сайт в браузере
Что происходит, когда мы открываем сайт в браузере

Пошаговый рассказ о том, что делает браузер.

medium
Устанавливаем Вордпресс в Docker
Устанавливаем Вордпресс в Docker

Это быстрее и проще, чем кажется.

medium
WebStorm: это что и зачем?
WebStorm: это что и зачем?

Разбираем один из любимых редакторов кода всея Руси.

Как быстро освоить новую технологию
Как быстро освоить новую технологию

Пробуем метод разработчика из Яндекс.Практикума.

Разговор с тестировщиком: о профессии, зарплатах и развитии
Разговор с тестировщиком: о профессии, зарплатах и развитии

Рассказываем о том, как попасть в тестирование и получить желаемую зарплату

easy
WebP — что это за формат, как устроен, зачем нужен и почему он так всем не нравится
WebP — что это за формат, как устроен, зачем нужен и почему он так всем не нравится

Изображения легче, а качество — то же

easy
easy
[anycomment]
Exit mobile version