Описание
Алгоритмы и структуры данных [2022]
proglib.academy
Степан Мацкевич
Знание алгоритмов и структур данных поможет пройти техническое собеседование любой сложности при устройстве на работу, а также перейти на позиции уровня middle и выше.
1. Погрузитесь в теорию структур данных и научитесь решать сложные алгоритмические задачи.
2. Научитесь применять алгоритмы и структуры данных при разработке программ.
3. Сможете браться за сложные проекты и повышать чек за свою работу.
Кому подходит курс:
1. Junior-разработчикам и недоджунам
- Курс предназначен для тех, кто уже имеет базовые навыки в любом объектно-ориентированном языке программирования.
- Вы освоите как теоретический, так и практический материал.
- Сможете выйти на новый уровень, получить повышение и больше зарабатывать.
2. Middle- и senior-разработчикам
- Подтянете свои знания по теме алгоритмов и структур данных.
- В курсе теории совсем немного, преобладает практика.
- Каждый урок включает в себя множество примеров.
- В конце – домашнее задание.
- Вы уверенно сможете брать новые проекты или претендовать на повышение.
Этот курс подойдет вам, если:
1. Знаете один из объектно-ориентированных языков программирования (Python, Java, PHP, C++, JavaScript, C#).
2. Этот курс подойдет вам, если Вы отлично разбираетесь в базовой математике.
Почему алгоритмы:
1. Польза
2. Удобство
3. Опыт
После курса вы:
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 – Эвристические алгоритмы ИИ
Примечание: тариф Полный
Отзывы
Отзывов пока нет.