Robot
Складчик
- #1
[proglib.academy] Алгоритмы и структуры данных. 2022 [Степан Мацкевич]
- Ссылка на картинку
Знание алгоритмов и структур данных поможет пройти техническое собеседование любой сложности при устройстве на работу, а также перейти на позиции уровня middle и выше.
1. Погрузитесь в теорию структур данных и научитесь решать сложные алгоритмические задачи.
2. Научитесь применять алгоритмы и структуры данных при разработке программ.
3. Сможете браться за сложные проекты и повышать чек за свою работу.
Кому подходит курс:
1. Junior-разработчикам и недоджунам
Курс предназначен для тех, кто уже имеет базовые навыки в любом объектно-ориентированном языке программирования.
Вы освоите как теоретический, так и практический материал.
Сможете выйти на новый уровень, получить повышение и больше зарабатывать.
2. Middle- и senior-разработчикам
Подтянете свои знания по теме алгоритмов и структур данных.
В курсе теории совсем немного, преобладает практика.
Каждый урок включает в себя множество примеров.
В конце – домашнее задание.
Вы уверенно сможете брать новые проекты или претендовать на повышение.
Этот курс подойдет вам, если:
1. Знаете один из объектно-ориентированных языков программирования (Python, Java, PHP, C++, JavaScript, C#).
2. Этот курс подойдет вам, если Вы отлично разбираетесь в базовой математике.
Почему алгоритмы:
1. Польза
Программист должен понимать принцип работы алгоритмов и уметь использовать в своих программах.
2. Удобство
Показывают важные приемы алгоритмического подхода, которые применяются в других задачах.
3. Опыт
Изучаются в университетском курсе на IT-специальностях, и часто встречаются на технических собеседованиях.
После курса вы:
1. Станете понимать фундаментальные структуры данных;
2. Разберетесь в составе стандартных библиотек языков программирования;
3. Получите практический опыт решения сложных алгоритмических задач;
4. Разберетесь в структурах данных;
5. Сможете применять изученные языки при разработке программ;
6. Сможете легко пройти техническое собеседование.
Блок 1 - Базовый
Модуль 1 - Введение. Производительность алгоритмов
Знакомство с программой курса и алгоритмами.
Способы измерения времени выполнения алгоритмов.
О-нотация.
Модуль 2 - Работа с числами
Числовые алгоритмы: алгоритм Эвклида, возведения в целую степень, схема Горнера, проверка простоты, решето Эратосфена.
Модуль 3 - Массивы
Массивы.
Указатели.
Доступ к элементам.
Линейный поиск.
Двумерные массивы.
Динамический массив.
Модуль 4 - Алгоритмы на массивах
Бинарный поиск.
Вставка и удаление элемента.
Удаление нескольких элементов.
Модуль 5 - Списки. Стек, очередь, дек
Понятие об АТД, интерфейсе.
Односвязные, двусвязные списки.
Основные операции.
Реализации на массиве.
Реализация на списке.
Применение.
Модуль 6 - Очередь с приоритетом
Понятие о пирамиде (куче), построение пирамиды.
Извлечение максимума, добавление элемента.
Модуль 7 - Сортировки
Квадратичные сортировки.
Сортировка слиянием.
Быстрая сортировка.
Пирамидальная сортировка. std::sort.
Сортировка подсчетом.
Модуль 8 - Порядковые статистики
Поиск медианы и порядковых статистик методом QuickSelect.
Модуль 9 - Деревья
Виды деревьев.
Обходы в глубину и в ширину.
Двоичные деревья поиска.
Необходимость балансировки.
АВЛ-деревья и т.д.
Модуль 10 - Хеш-таблицы
Хеш-таблицы и ассоциативный доступ.
Методы разрешения коллизий.
Модуль 11 - Жадные алгоритмы. Динамическое программирование
Примеры жадных алгоритмов, их корректность.
Задача о рюкзаке.
Одномерная и двумерная динамика.
Модуль 12 - Графы
Виды графов.
Представление графов.
Связность.
Обходы в глубину и в ширину.
Сильная связность, конденсация.
Поиск кратчайших путей, алгоритм Дейкстры.
Модуль 13 - Строки
Символы, кодировки, юникод.
Поиск в строках – алгоритмы Рабина-Карпа и Кнута-Морриса-Пратта.
Бор.
Модуль 14 - Криптография
CRC-коды, MD5, SHA.
Модуль 15 - Длинные числа. Итоги
Блок 2 - Продвинутый
Модуль 16 - Сортировки
Шелла, быстрая, поразрядная.
Модуль 17 - Строки
Сложные алгоритмы поиска строк.
Редакционное расстояние.
Модуль 18 - Деревья
Балансированные деревья.
В-деревья.
Модуль 19 - Графы
Остовные деревья, пути, раскраски и т.д.
Интернет и графы.
Модуль 20 - Сжатие данных
Методы Хаффмена и Лемпель-Зива.
Модуль 21 - Динамическое программирование
Практические задачи.
Модуль 22 - NP-трудные задачи
Задача коммивояжера.
Модуль 23 - Эвристические алгоритмы ИИ
1. Погрузитесь в теорию структур данных и научитесь решать сложные алгоритмические задачи.
2. Научитесь применять алгоритмы и структуры данных при разработке программ.
3. Сможете браться за сложные проекты и повышать чек за свою работу.
Кому подходит курс:
1. Junior-разработчикам и недоджунам
Курс предназначен для тех, кто уже имеет базовые навыки в любом объектно-ориентированном языке программирования.
Вы освоите как теоретический, так и практический материал.
Сможете выйти на новый уровень, получить повышение и больше зарабатывать.
2. Middle- и senior-разработчикам
Подтянете свои знания по теме алгоритмов и структур данных.
В курсе теории совсем немного, преобладает практика.
Каждый урок включает в себя множество примеров.
В конце – домашнее задание.
Вы уверенно сможете брать новые проекты или претендовать на повышение.
Этот курс подойдет вам, если:
1. Знаете один из объектно-ориентированных языков программирования (Python, Java, PHP, C++, JavaScript, C#).
2. Этот курс подойдет вам, если Вы отлично разбираетесь в базовой математике.
Почему алгоритмы:
1. Польза
Программист должен понимать принцип работы алгоритмов и уметь использовать в своих программах.
2. Удобство
Показывают важные приемы алгоритмического подхода, которые применяются в других задачах.
3. Опыт
Изучаются в университетском курсе на IT-специальностях, и часто встречаются на технических собеседованиях.
После курса вы:
1. Станете понимать фундаментальные структуры данных;
2. Разберетесь в составе стандартных библиотек языков программирования;
3. Получите практический опыт решения сложных алгоритмических задач;
4. Разберетесь в структурах данных;
5. Сможете применять изученные языки при разработке программ;
6. Сможете легко пройти техническое собеседование.
Блок 1 - Базовый
Модуль 1 - Введение. Производительность алгоритмов
Знакомство с программой курса и алгоритмами.
Способы измерения времени выполнения алгоритмов.
О-нотация.
Модуль 2 - Работа с числами
Числовые алгоритмы: алгоритм Эвклида, возведения в целую степень, схема Горнера, проверка простоты, решето Эратосфена.
Модуль 3 - Массивы
Массивы.
Указатели.
Доступ к элементам.
Линейный поиск.
Двумерные массивы.
Динамический массив.
Модуль 4 - Алгоритмы на массивах
Бинарный поиск.
Вставка и удаление элемента.
Удаление нескольких элементов.
Модуль 5 - Списки. Стек, очередь, дек
Понятие об АТД, интерфейсе.
Односвязные, двусвязные списки.
Основные операции.
Реализации на массиве.
Реализация на списке.
Применение.
Модуль 6 - Очередь с приоритетом
Понятие о пирамиде (куче), построение пирамиды.
Извлечение максимума, добавление элемента.
Модуль 7 - Сортировки
Квадратичные сортировки.
Сортировка слиянием.
Быстрая сортировка.
Пирамидальная сортировка. std::sort.
Сортировка подсчетом.
Модуль 8 - Порядковые статистики
Поиск медианы и порядковых статистик методом QuickSelect.
Модуль 9 - Деревья
Виды деревьев.
Обходы в глубину и в ширину.
Двоичные деревья поиска.
Необходимость балансировки.
АВЛ-деревья и т.д.
Модуль 10 - Хеш-таблицы
Хеш-таблицы и ассоциативный доступ.
Методы разрешения коллизий.
Модуль 11 - Жадные алгоритмы. Динамическое программирование
Примеры жадных алгоритмов, их корректность.
Задача о рюкзаке.
Одномерная и двумерная динамика.
Модуль 12 - Графы
Виды графов.
Представление графов.
Связность.
Обходы в глубину и в ширину.
Сильная связность, конденсация.
Поиск кратчайших путей, алгоритм Дейкстры.
Модуль 13 - Строки
Символы, кодировки, юникод.
Поиск в строках – алгоритмы Рабина-Карпа и Кнута-Морриса-Пратта.
Бор.
Модуль 14 - Криптография
CRC-коды, MD5, SHA.
Модуль 15 - Длинные числа. Итоги
Блок 2 - Продвинутый
Модуль 16 - Сортировки
Шелла, быстрая, поразрядная.
Модуль 17 - Строки
Сложные алгоритмы поиска строк.
Редакционное расстояние.
Модуль 18 - Деревья
Балансированные деревья.
В-деревья.
Модуль 19 - Графы
Остовные деревья, пути, раскраски и т.д.
Интернет и графы.
Модуль 20 - Сжатие данных
Методы Хаффмена и Лемпель-Зива.
Модуль 21 - Динамическое программирование
Практические задачи.
Модуль 22 - NP-трудные задачи
Задача коммивояжера.
Модуль 23 - Эвристические алгоритмы ИИ
Зарегистрируйтесь
, чтобы посмотреть скрытый авторский контент.