Блог Алгоритмы и структуры данных | OTUS
💥 Пока ты ждешь — другие качаются!
Мы создали лучшие условия, чтобы ты начал учиться прямо сейчас. Пиши в чат и получи скидку ➞
Написать в чат

Курсы

Программирование
Web-разработчик на Python
-20%
Разработчик Python
-20%
Разработчик на Spring Framework Разработчик Golang
-20%
iOS Разработчик. Продвинутый курс v 2.0.
-20%
PostgreSQL
-20%
Разработчик игр на Unity React.js разработчик Архитектура и шаблоны проектирования Fullstack разработчик JavaScript Android-разработчик. Продвинутый курс Разработчик Java Разработчик Node.js Scala-разработчик Backend-разработка на Kotlin Symfony Framework Framework Laravel Базы данных ReactJS/React Native-разработчик Cloud Solution Architecture CI/CD Интенсив «Оптимизация в Java»
Специализации Курсы в разработке Подготовительные курсы
+7 499 938-92-02
Посты
Отзыв выпускника курса «Алгоритмы для разработчиков»

Algo_feedback_16.4-5020-66b90a.png

Мы в OTUS постоянно интересуемся мнением наших студентов о том, насколько им интересно учиться, что именно они узнают, чем запоминаются занятия, с какими проблемами сталкиваются. Специально для этого была внедрена опросная система, цель которой — улучшить качество образования и оперативно устранять возникающие проблемы. И конечно, мы всегда радуемся, когда студенты готовы дать фидбек не только в формате опроса, но и ответить на конкретные вопросы лично. Так мы связались с Романом Зотовым, выпускником курса «Алгоритмы для разработчиков».

Алгоритм сортировки выборкой с примером на 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, спеллчекеры, научные задачи такие, как работа с последовательностями ДНК, и многие другие.

🎁 Дарим сертификаты на скидку!
Запишитесь на июньскую трансляцию интересного вам дня открытых дверей и получите скидочный сертификат ➞