Содержание курса
Введение в алгоритмы
8 уроков
1.
Введение в курс
↗
2.
Понятие алгоритма
↗
3.
Сложные проценты
↗
4.
Линейный поиск
↗
5.
Сортировка выбором
↗
6.
Сложность алгоритмов
↗
7.
Сложность алгоритмов, часть 2
↗
8.
Задания
↗
Структуры данных
14 уроков
1.
Связные списки
↗
2.
Добавление вставка и удаление ячеек
↗
3.
Двунаправленные связные списки
↗
4.
Сортировка связных списков
↗
5.
Массивы
↗
6.
Многомерные массивы
↗
7.
Треугольные массивы
↗
8.
Стек
↗
9.
Очередь
↗
10.
Очередь с приоритетом и дек
↗
11.
Задания на связные списки
↗
12.
Задания на массивы
↗
13.
Задания на стеки
↗
14.
Задания на очереди
↗
Сортировка
14 уроков
1.
Общее о сортировках
↗
2.
Пузырьковая сортировка
↗
3.
Сортировка вставками
↗
4.
Пирамидальная сортировка (кучей)
↗
5.
Пирамидальная сортировка, часть 2
↗
6.
Быстрая сортировка
↗
7.
Сложность быстрой сортировки
↗
8.
Быстрая сортировка на месте
↗
9.
Сортировка слиянием
↗
10.
Сортировка подсчетом
↗
11.
Блочная сортировка
↗
12.
Устойчивость сортировок
↗
13.
Сортировка по нескольким полям
↗
14.
Задания
↗
Поиск
3 урока
1.
Бинарный поиск
↗
2.
Интерполяционный поиск
↗
3.
Задания
↗
Численные алгоритмы
8 уроков
1.
Генерирование случайных чисел
↗
2.
Наибольший общий делитель
↗
3.
Возведение в степень
↗
4.
Решето Эратосфена
↗
5.
Проверка на простоту
↗
6.
Поиск простых множителей
↗
7.
Численные методы
↗
8.
Задания
↗
Хэширование
10 уроков
1.
Основы хэш-таблиц
↗
2.
Прямое связывание
↗
3.
Открытая адресация
↗
4.
Удаление элементов из хэш-таблицы
↗
5.
Квадратичное пробирование
↗
6.
Квадратичное пробирование, часть 2
↗
7.
Двойное хэширование
↗
8.
Упорядоченное хэширование
↗
9.
Фильтры Блума
↗
10.
Задания
↗
Рекурсия
12 уроков
1.
Понимание рекурсии
↗
2.
Понимание рекурсии, часть 2
↗
3.
Факториал
↗
4.
Числа Фибоначчи
↗
5.
Ханойская башня
↗
6.
Задача о 8 ферзях
↗
7.
Оптимизация задачи о восьми ферзях
↗
8.
Сочетания
↗
9.
Размещения
↗
10.
Оптимизация рекурсии
↗
11.
Кривая Коха
↗
12.
Задания
↗
Деревья
13 уроков
1.
Введение в деревья
↗
2.
Обход деревьев
↗
3.
Обход деревьев в ширину
↗
4.
Добавление элементов в бинарные деревья поиска
↗
5.
Поиск по двоичному дереву
↗
6.
Удаление вершин из двоичного дерева
↗
7.
Прошитые бинарные деревья
↗
8.
Деревья квадрантов
↗
9.
АВЛ-деревья
↗
10.
2-3 деревья
↗
11.
B-деревья
↗
12.
Красно-черные деревья
↗
13.
Задания
↗
Деревья принятия решения
12 уроков
1.
Введение в деревья принятия решений
↗
2.
Метод полного перебора
↗
3.
Метод ветвей и границ
↗
4.
Случайный поиск
↗
5.
Локальный поиск
↗
6.
Имитация отжига
↗
7.
Поиск максимума
↗
8.
Сравнение эвристических алгоритмов
↗
9.
Энтропия
↗
10.
Энтропия и деревья принятия решений
↗
11.
Алгоритм ID3
↗
12.
Задания
↗
Алгоритмы на графах
21 урок
1.
Введение в графы
↗
2.
Способы представления графов
↗
3.
Рекурсивный обход в глубину
↗
4.
Обход в глубину с помощью стека
↗
5.
Обход в ширину
↗
6.
Топологическая сортировка
↗
7.
Топологическая сортировка на практике
↗
8.
Поиск циклов
↗
9.
Поиск критического пути
↗
10.
Критические пути на практике
↗
11.
Поиск компонент связности
↗
12.
Поиск компонент сильной связности
↗
13.
Поиск мостов
↗
14.
Остовные деревья
↗
15.
Минимальное остовное дерево
↗
16.
Алгоритм Прима
↗
17.
Алгоритм Краскала
↗
18.
Алгоритм Дейскстры
↗
19.
Алгоритм Беллмана - Форда
↗
20.
Кратчайшие пути на практике
↗
21.
Задания
↗
Строковые алгоритмы
11 уроков
1.
Простейший поиск подстроки
↗
2.
Суффиксы, префиксы, грани
↗
3.
Префикс-функция
↗
4.
Алгоритм Кнута - Морриса - Пратта
↗
5.
Алгоритм Бойера - Мура
↗
6.
Алгоритм Бойера - Мура на практике
↗
7.
Суффиксные деревья
↗
8.
Поиск по суффиксному дереву
↗
9.
Построение суффиксного дерева
↗
10.
Скорость алгоритмов поиска текста
↗
11.
Задания
↗
Крипотография
13 уроков
1.
Табличная перестановка
↗
2.
Перестановка столбцов
↗
3.
Шифры Цезаря и Виженера
↗
4.
Метод одноразовых блокнотов
↗
5.
Блочные шифры и SP-сети
↗
6.
Обмен ключам по методу Диффи-Хеллмана
↗
7.
Шифрование с открытым ключом
↗
8.
Криптосистема RSA
↗
9.
Гибридные криптосистемы
↗
10.
Хэширование
↗
11.
Применение хэширования в криптографии
↗
12.
Луковая маршрутизация
↗
13.
Задания
↗
Сжатие
6 уроков
1.
Введение в сжатие
↗
2.
Кодирование длин серий
↗
3.
Код Хаффмана
↗
4.
Сжатие Лемпеля - Зива - Велча
↗
5.
Сжатие с потерями
↗
6.
Задания
↗