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