- Регистрация
- 24.09.2021
- Сообщения
- 38 398
Описание:
Стать крутым инженером будет проще разработчику, который знаком со структурами данных и алгоритмами. Крупнейшие IT-компании мира и многие стартапы проверяют на собеседованиях алгоритмическую подготовку соискателей. Это лучший способ убедиться, что человек умеет быстро думать и писать работающий код. В этом курсе вы напишете много кода, научитесь оценивать эффективность решений, набьёте руку на практических заданиях, пройдёте учебное собеседование, максимально приближенное к реальности.
Программа обучения:
Введение в алгоритмы
5 часов
Определение алгоритма. Понятие сложности алгоритмов. O-нотация.
Основные структуры данных
15 часов
Массив, связный список, стек, очередь. Представление в памяти, сложность операций вставки, поиска и удаления. Преимущества и недостатки использования.
Жадные алгоритмы
5 часов
Понятие жадного алгоритма, область применения. Примеры, доказательство корректности алгоритма.
Рекурсия
5 часов
Понятние рекурсии. Основная теорема о рекурсии. Принцип разделяй и властвуй. Преимущества и недостатки метода.
Сортировки
10 часов
Квадратичные сортировки. Сортировка слиянием. Алгоритм нахождения k-й порядковой статистики, быстрая сортировка. Сортировки с использованием свойств элементов. Внешняя сортировка.
Деревья
20 часов
Бинарный поиск. Деревья поиска. Сбалансированные деревья. Куча. Пирамидальная сортировка. Некоторые специальные деревья.
Алгоритмы на строках
20 часов
Алгоритм Хаффмана. Структура данных префиксное дерево. Алгоритмы поиска подстроки в строке.
Хеш-таблицы. Понятие и свойства хеш-функции.
10 часов
Абстракция отображение. Понятие и свойства хеш-функции, примеры. Коллизии и способы их разрешения. Множества. Битовые маски. Фильтр Блума.
Динамическое программирование
10 часов
Базовое динамическое программирование, одномерные и двумерные задачи. Динамическое программирование по подотрезкам. Динамическое программирование по подмножествам. Динамическое программирование по поддеревьям.
Графы
10 часов
Определение графа, способы представления в памяти. Обходы графов: DFS, BFS. Связность. Алгоритмы поиска кратчайших путей в графах. Построения минимального остовного дерева.
Стать крутым инженером будет проще разработчику, который знаком со структурами данных и алгоритмами. Крупнейшие IT-компании мира и многие стартапы проверяют на собеседованиях алгоритмическую подготовку соискателей. Это лучший способ убедиться, что человек умеет быстро думать и писать работающий код. В этом курсе вы напишете много кода, научитесь оценивать эффективность решений, набьёте руку на практических заданиях, пройдёте учебное собеседование, максимально приближенное к реальности.
Программа обучения:
Введение в алгоритмы
5 часов
Определение алгоритма. Понятие сложности алгоритмов. O-нотация.
Основные структуры данных
15 часов
Массив, связный список, стек, очередь. Представление в памяти, сложность операций вставки, поиска и удаления. Преимущества и недостатки использования.
Жадные алгоритмы
5 часов
Понятие жадного алгоритма, область применения. Примеры, доказательство корректности алгоритма.
Рекурсия
5 часов
Понятние рекурсии. Основная теорема о рекурсии. Принцип разделяй и властвуй. Преимущества и недостатки метода.
Сортировки
10 часов
Квадратичные сортировки. Сортировка слиянием. Алгоритм нахождения k-й порядковой статистики, быстрая сортировка. Сортировки с использованием свойств элементов. Внешняя сортировка.
Деревья
20 часов
Бинарный поиск. Деревья поиска. Сбалансированные деревья. Куча. Пирамидальная сортировка. Некоторые специальные деревья.
Алгоритмы на строках
20 часов
Алгоритм Хаффмана. Структура данных префиксное дерево. Алгоритмы поиска подстроки в строке.
Хеш-таблицы. Понятие и свойства хеш-функции.
10 часов
Абстракция отображение. Понятие и свойства хеш-функции, примеры. Коллизии и способы их разрешения. Множества. Битовые маски. Фильтр Блума.
Динамическое программирование
10 часов
Базовое динамическое программирование, одномерные и двумерные задачи. Динамическое программирование по подотрезкам. Динамическое программирование по подмножествам. Динамическое программирование по поддеревьям.
Графы
10 часов
Определение графа, способы представления в памяти. Обходы графов: DFS, BFS. Связность. Алгоритмы поиска кратчайших путей в графах. Построения минимального остовного дерева.