Алгоритмы для разработчиков. Часть 3 из 4
О чём курс
Понимание фундаментальных принципов работы алгоритмов позволяет писать более эффективный и производительный код независимо от выбранного стека технологий. В этой части курса разбираются ключевые структуры данных и стратегии решения задач, которые лежат в основе высоконагруженных систем.
В материале подробно рассматриваются темы, критически важные для глубокого понимания вычислительной сложности:
- работа с деревьями, включая сбалансированные деревья поиска и кучи;
- алгоритмы на графах, от обхода в глубину и ширину до поиска кратчайшего пути;
- техники динамического программирования для одномерных и двумерных задач;
- жадные алгоритмы и их применение;
- продвинутая работа со строками, включая использование структуры данных бор и префикс-функции.
Курс предназначен для разработчиков, которые хотят перестать полагаться на интуицию при написании кода и научиться осознанно выбирать подходящие инструменты для обработки данных. Итогом обучения станет умение оценивать временную и пространственную сложность алгоритмов и эффективно оптимизировать программные решения.
Программа обучения
- Введение в алгоритмы (20 часов)
- Понятие сложности алгоритма. O-нотация. Оценка времени исполнения программы.
- Основные структуры данных (20 часов)
- Массив, связный список, стек, очередь. Сложность операций вставки, поиска и удаления. Представление данных в памяти. Пространственная сложность алгоритма.
- Рекурсия (5 часов)
- Понятие рекурсии. Принцип «разделяй и властвуй». Бинарный поиск.
- Сортировки (15 часов)
- Квадратичные сортировки. Сортировка слиянием. Быстрая сортировка. Линейная сортировка подсчётом.
- Хеш-функции и хеш-таблицы (20 часов)
- Абстракция отображения. Понятие и свойства хеш-функции, примеры. Структура данных хеш-таблица. Коллизии и способы их разрешения.
- Деревья (20 часов)
- Структура данных дерево. Сбалансированные деревья поиска. Структура данных куча. Пирамидальная сортировка.
- Графы (20 часов)
- Определение графа, способы представления в памяти. Обход графа в глубину и в ширину. Компоненты связности. Алгоритмы поиска кратчайшего пути. Минимальное остовное дерево.
- Динамическое программирование (15 часов)
- Определение, одномерные и двумерные задачи. Динамическое программирование по подотрезкам. Динамическое программирование по подмножествам.
- Жадные алгоритмы (5 часов)
- Понятие жадного алгоритма, область применения. Примеры, доказательство корректности алгоритма.
- Алгоритмы на строках (20 часов)
- Префикс-функция. Подстроки, префиксы и суффиксы. Поиск шаблона в строке. Наивный алгоритм. Структура данных бор.
Другие материалы школы 11
ЯП Яндекс Практикум Все материалыОтзывов пока нет. Будьте первым!
Это не розничная цена — это ваш взнос в складчину. Мы собираем группу участников и делим между ними стоимость официального доступа: каждый платит только свою долю, а получает весь материал. Чем больше участников, тем меньше взнос. После того как сумма собрана, мы оформляем официальный доступ и раздаём материалы всем, кто участвовал.
Нажмите кнопку «Получить доступ» на этой странице и следуйте инструкциям. Вас переведёт на форму оплаты — доступны все современные способы (карта, СБП, электронные кошельки). После оплаты на почту придёт письмо с доступом: материалы выдаются в разделе «Мои складчины» на нашем основном сайте skladchik.org. Учтите: в России skladchik.org открывается только через ускоритель интернета (VPN) — настроить его можно за пару минут по инструкции на skladchik-kak-voiti.online.
Да, конечно. Все материалы — видео, PDF, дополнительные файлы — можно скачать к себе на компьютер и пользоваться ими сколько угодно, без ограничений по времени. Ссылки остаются активными в вашей библиотеке «Мои складчины».