Блог Алгоритмы и структуры данных | OTUS
Скидка до 15% на курсы ноября, декабря и января
❄️ До 13.12 Забрать скидку! →
Выбрать курс
Посты
Алгоритм пузырьковой сортировки — реализация на 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, спеллчекеры, научные задачи такие, как работа с последовательностями ДНК, и многие другие.

Вычисление специального факториала по модулю p за O(p log N)

Algo_Deep_3.07_site-5020-580834.png

Рассмотрим задачу вычисления формул, состоящих из дробей, где в числителе и в знаменателе присутствуют факториалы (например, биномиальные коэффициенты).

Чем хороши префиксные деревья?

Algo_Deep_12.7_Site-5020-be0e69.png

Как эффективно решить задачу автодополнения для строки поиска? Точнее, какую структуру данных выбрать, чтобы хранить все известные слова, для которых потребуется искать окончания? Попробуем разобраться.

Популярное
Сегодня тут пусто
Новогодние скидки в Otus!-15% ❄️
Успейте забрать свою скидку до 13.12 →