Алгоритмы и структуры данных
Программисты middle+ смогут потренировать забытые навыки и сгенерировать идеальные решения сложных задач в сообществе других разработчиков
Кому подходит курс?
- Junior-разработчикам и тем, кто хочет стать разработчиком / устроиться на должность разработчика. Курс предназначен для тех, кто уже имеет базовые навыки в любом объектно-ориентированном языке программирования. Вы освоите как теоретический, так и практический материал.
- Middle-разработчикам. Освежите свои знания по теме алгоритмов и структур данных. В курсе сделан акцент на практике - написание кода, разбор подходов в решении алгоритмических задач. Сможете выйти на новый уровень и подтянуть навыки для поступления на работы в такие крупные технологические компании, как Яндекс, Сбер, Google, Microsoft и другие.
- Польза. Программист должен знать ключевые алгоритмы и уметь применять их при написании кода.
- Удобство. Знание алгоритмов расширяет инструментарий разработчика в решении практических задач.
- Опыт. Изучаются в университетском курсе на IT-специальностях, и часто встречаются на технических собеседованиях.
- Станете понимать алгоритмы и структуры данных
- Научитесь писать более короткий и эффективный код
- Разберетесь в составе стандартных библиотек
- языков программирования
- Сможете применить полученные навыки при разработке программ
- Сможете легко пройти техническое собеседование
- Получите практический опыт решения сложных алгоритмических задач
- Получите сертификат о прохождении курса «Алгоритмы и структуры данных» от proglib.academy
- Сможете в любой момент вернуться к лекциям и освежить знания. Доступ неограничен
- Введение. Производительность алгоритмов. Знакомство с программой курса и алгоритмами. Способы измерения времени выполнения алгоритмов. О-нотация.
- Работа с числами. Числовые алгоритмы: алгоритм Эвклида, возведения в целую степень, схема Горнера, проверка простоты, решето Эратосфена.
- Массивы. Массивы. Указатели. Доступ к элементам. Линейный поиск. Двумерные массивы. Динамический массив.
- Алгоритмы на массивах. Бинарный поиск. Вставка и удаление элемента. Удаление нескольких элементов.
- Списки. Стек, очередь, дек. Понятие об АТД, интерфейсе. Односвязные, двусвязные списки. Основные операции. Реализации на массиве. Реализация на списке. Применение.
- Очередь с приоритетом. Понятие о пирамиде (куче), построение пирамиды. Извлечение максимума, добавление элемента. std:: priority_queue.
- Сортировки. Квадратичные сортировки. Сортировка слиянием. Быстрая сортировка. Пирамидальная сортировка. std::sort. Сортировка подсчетом.
- Порядковые статистики. Поиск медианы и порядковых статистик методом QuickSelect.
- Деревья. Виды деревьев. Обходы в глубину и в ширину. Двоичные деревья поиска. Необходимость балансировки. АВЛ-деревья и т.д.
- Хеш-таблицы. Хеш-таблицы и ассоциативный доступ. Методы разрешения коллизий. std::unordered_set, std::unordered_map.
- Жадные алгоритмы. Динамическое программирование. Примеры жадных алгоритмов, их корректность. Задача о рюкзаке. Одномерная и двумерная динамика.
- Графы. Виды графов. Представление графов. Связность. Обходы в глубину и в ширину. Сильная связность, конденсация. Поиск кратчайших путей, алгоритм Дейкстры.
- Строки. Символы, кодировки, юникод. Поиск в строках – алгоритмы Рабина-Карпа и Кнута-Морриса-Пратта. Бор.
- Криптография. CRC-коды, MD5, SHA.
- Длинные числа. Итоги.
- Сортировки. Шелла, быстрая, поразрядная.
- Деревья. Балансированные деревья. В-деревья.
- Графы. Остовные деревья, пути, раскраски и т.д. Интернет и графы.
- Сжатие данных. Методы Хаффмена и Лемпель-Зива.
- Динамическое программирование. Практические задачи.
- NP-трудные задачи. Задача коммивояжера.
- Эвристические алгоритмы ИИ
Цена фиксированная при оплате онлайн единым платежом = 17500 руб.
Источник
https://proglib.academy/algorithms_and_data_structures_program_advanced