Алгоритмы и структуры данных [2020]
SkillFactory
Павел Труфанов, Дмитрий Никулин
Курс для разработчиков, готовых выйти на новый уровень в карьере за короткий срок.
- Спотыкаетесь при решении хитрых алгоритмических задач на собеседованиях?
- Сомневаетесь как достоверно посчитать временную сложность алгоритма?
- Хотите браться за сложные проекты и находить элегантное решение?
1. Начинающим разработчикам для уверенного старта и прохождения технических собеседований.
- Разработчикам, которые стремятся на уровень выше - на позиции Middle и Senior. Получите выгодное преимущество на фоне других кандидатов.
- Тем, кто хочет браться за сложные проекты и работать в IT-гигантах, и пройти многоступенчатый жесткий отбор.
- Тем, кто хочет участвовать в олимпиадном программировании, готов учиться новому и любознательность его второе имя.
-
1. Начинающим разработчикам для уверенного старта и прохождения технических собеседований.
[*]Разработчикам, которые стремятся на уровень выше - на позиции Middle и Senior. Получите выгодное преимущество на фоне других кандидатов.
[*]Тем, кто хочет браться за сложные проекты и работать в IT-гигантах, и пройти многоступенчатый жесткий отбор.
[*]Тем, кто хочет участвовать в олимпиадном программировании, готов учиться новому и любознательность его второе имя.
Математика для программистов нужна в серьезных проектах и нетривиальных задачах.
3. Много практики и решения алгоритмических задачРешаем упражнения и задачи различной сложности, в том числе олимпиадные и бизнес-задачи.
4. Подготовка к техническому собеседованиюВо время курса вы потренируетесь в решении реальных задач с технических собеседований.
1. Начинающим разработчикам для уверенного старта и прохождения технических собеседований.
- Разработчикам, которые стремятся на уровень выше - на позиции Middle и Senior. Получите выгодное преимущество на фоне других кандидатов.
- Тем, кто хочет браться за сложные проекты и работать в IT-гигантах, и пройти многоступенчатый жесткий отбор.
- Тем, кто хочет участвовать в олимпиадном программировании, готов учиться новому и любознательность его второе имя.
-
1. Начинающим разработчикам для уверенного старта и прохождения технических собеседований.
[*]Разработчикам, которые стремятся на уровень выше - на позиции Middle и Senior. Получите выгодное преимущество на фоне других кандидатов.
[*]Тем, кто хочет браться за сложные проекты и работать в IT-гигантах, и пройти многоступенчатый жесткий отбор.
[*]Тем, кто хочет участвовать в олимпиадном программировании, готов учиться новому и любознательность его второе имя.
- Рекурсивные переборы, переборы всех комбинаторных объектов.
- Перестановки, разбиение на слагаемые, строки Фибоначчи.
- Перебор битовых масок.
Практика: Программа по решению кроссвордов Судоку.
3. Сортировки и поиск.- Сортировки, использование встроенной функции sort в языках.
- Алгоритм бинарного поиска. Бинарный поиск по ответу.
Практика: Сортировка больших файлов с данными, потенциально не помещающихся в оперативную память.
4. Хеширование.- Принцип хеширования. Парадокс дней рождения. Известные алгоритмы хеширования. Полиномиальное хеширование.
- Алгоритмы на строках.
- Хеш-таблица, встроенная реализация, собственная реализация.
Практика: Сокращатель ссылок на подобие bit.ly.
5. Графы.- Графы. Представление графов и алгоритм DFS.
- Графы. Задача о поиске кратчайшего пути в графе, алгоритм BFS.
- Алгоритм Дейкстры.
Практика: Travel planner - постройка кратчайшего маршрута для путешествия.
6. Деревья.- Графы. Представление деревьев. Алгоритмы на деревьях.
- Бинарное дерево поиска, работа с ним.
- AVL-дерево.
- Кучи. Деревья Хаффмана.
Практика: Архиватор файлов.
7. Динамическое программирование.- Задачи динамического программирования. Базовые применения. Префиксные суммы.
- Задачи динамического программирования. Сложные задачи. Задача о рюкзаке.
- Конечные автоматы. Регулярные выражения.
Практика: Применение регулярных выражение.
Блок 2- карьерный- Фишки прохождения технических собеседований в крупные IT-компании.
- Mock-интервью «Собеседование в Amazon».
Продажник