Блог Алгоритмы и структуры данных → Полезные материалы по алгоритмам | OTUS
⚡ Открываем подписку на курсы!
Проходите параллельно 3 онлайн-курса в месяц по цене одного.
Подробнее

Курсы

Программирование
Backend-разработчик на PHP Scala-разработчик Алгоритмы и структуры данных Backend-разработка на Kotlin Team Lead Разработчик Python. Базовый курс C# ASP.NET Core разработчик
-25%
iOS-разработчик. Базовый курс
-25%
Супер - интенсив по паттернам проектирования
-16%
Fullstack разработчик JavaScript
-18%
JavaScript Developer. Basic Архитектор программного обеспечения
-12%
Agile Project Manager в IT MS SQL Server разработчик Разработчик игр на Unity Супер - практикум по использованию и настройке GIT VOIP инженер Framework Laravel Android-разработчик. Базовый курс AWS для разработчиков Cloud Solution Architecture Архитектура и шаблоны проектирования Разработчик Node.js Супер - интенсив по Kubernetes
Специализации Курсы в разработке Подготовительные курсы
+7 499 938-92-02
Алгоритм сортировки вставками

Как и в случае с сортировкой выборкой, алгоритм сортировки вставками выполняет сегментацию списка на 2 части: сортированную и несортированную. Далее алгоритм перебирает 2-й сегмент, вставляя текущий элемент в правильную позицию 1-го сегмента.

Алгоритм сортировки выборкой с примером на Python

Algo_Deep_14.4-5020-efbc8a.png

Сортировка выборкой — известнейший алгоритм, сегментирующий список на 2 части: несортированную и сортированную. При этом элемент с минимальным значением удаляется из второго списка, добавляясь в первый.

Алгоритм пузырьковой сортировки — реализация на Python

Algo_Deep_3.4-5020-66ad16.png

Алгоритм пузырьковой сортировки является довольно простым. Он выполняет итерации по списку и сравнивает элементы попарно, заодно меняя их местами. Это происходит до тех пор, пока крупные элементы не «всплывут» (аналогия с пузырьками воздуха) в начало списка. Более мелкие, соответственно, останутся на «дне».

Динамическое программирование: не так страшен чёрт...

Algo_deep_23.3-5020-f45ccf.png

Часто встречаю в интернете такое: «Мне дали на 4-м туре собеседования в Яндексе задачу динамического программирования — уууу — какая сложная была!», «Сейчас крупнейшие зарубежные компании на собеседовании сразу дают динамику, чтобы отсеять слабых программистов».

Оцениваем сложность алгоритмов: что такое О(log n)?

Algo_Deep_9.1-5020-29ddd3.png

Если вы сталкивались с алгоритмами, то наверняка видели обозначения типа O(log n), а также слышали о логарифмической вычислительной сложности. Давайте освежим в памяти, что это такое, и как оценивается сложность алгоритмов.

Реализуем пирамидальную сортировку на Python

Algo_Deep_9.10-5020-e9da33.png

Пирамидальную сортировку также называют «сортировка кучей». Это довольно популярный алгоритм, сегментирующий список на 2 части: отсортированную и, соответственно, неотсортированную. Давайте посмотрим, как его реализовать на Python.

Просто о сложном: что фильтрует фильтр Блума?

Algo_Deep_2.10-5020-9475ea.png

Многие разработчики, особенно начинающие, интересуются, что же это такое — фильтр Блума? О чём может спросить Яндекс на собеседовании и о чём знают разработчики BigData?

Методы сортировки данных. Алгоритмы поиска и сортировки

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

Для чего нужны алгоритмы? Основные алгоритмы программирования

Algo_Deep_14.7_Site-5020-9819d3.png

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

Структура данных DAWG

Algo_Deep_9.07_site-5020-d587d0.png

Существует огромное количество задач, связанных с обработкой текстов: машинный перевод, фильтрация спама, data mining, спеллчекеры, научные задачи такие, как работа с последовательностями ДНК, и многие другие.