1. Введение в алгоритмы 7 уроков
Познакомитесь с основными характеристиками алгоритмов.
Узнаете простые и эффективные способы оценки сложности алгоритмов.
2. Структуры данных 10 уроков
Познакомитесь с базовыми структурами данных.
Научитесь работать со связными списками и массивами.
Узнаете, что такое стек, очередь и дек в Python.
Научитесь выбирать правильную структуру данных в зависимости от задач.
3. Сортировка 13 уроков
Познакомитесь с популярными алгоритмами сортировки на Python.
Научитесь выбирать алгоритмы сортировки под задачи и данные.
Научитесь сортировать по нескольким полям.
Узнаете, что такое устойчивые сортировки.
4. Поиск 2 урока
Познакомитесь с линейными и бинарным поиском.
Научитесь использовать интерполяционный поиск.
5. Численные алгоритмы 7 уроков
Научитесь генерировать случайные числа, а также вычислять наибольший общий делитель.
Узнаете об алгоритмах быстрого возведения в степень.
Расширите свои знания о простых числах и научитесь строить решето Эратосфена, а также быстро проверять на простоту любое число.
Познакомитесь с базовыми численными методами.
6. Хэширование 9 уроков
Узнаете, что такое хэш-таблицы и как устроены python-словари и ассоциативные массивы.
Научитесь разными способами пробирования и борьбе с коллизиями.
Познакомитесь с фильтрами Блума.
7. Рекурсия 11 уроков
Подробно изучите механизм рекурсивных вызовов.
Познакомитесь с базовыми рекурсивными алгоритмами Python: вычислением факториала, построением ряда Фибоначчи, задачами о 8 ферзях и ханойской башне.
Освоите комбинаторные алгоритмы: сочетания, повторения и размещения.
Научитесь оптимизировать рекурсию и приводить рекурсивные алгоритмы к итеративным.
Познакомитесь с фракталами.
8. Деревья 12 уроков
Познакомитесь с деревьями.
Научитесь обходить деревья в ширину и глубину.
Узнаете как искать элементы в двоичном дереве.
Познакомитесь с прошитыми бинарными деревьями, АВЛ-деревьями, 2-3 деревьями, B-деревьями, а также красно-черными деревьями.
9. Деревья принятия решений 11 уроков
Узнаете, что такое деревья принятия решений.
Научитесь методу полного перебора, а также методу ветвей и границ.
Освоите приемы оптимизации деревьев.
Научитесь производить поиск по деревьям принятия решений.
10. Алгоритмы на графах 16 уроков
Познакомитесь с сетями и графами.
Научитесь обходить деревья, а также находить кратчайший путь.
Освоите топологическую сортировку.
Узнаете как об алгоритме поиска циклов.
11. Строковые алгоритмы 5 уроков
Научитесь искать информацию в текстах.
Познакомитесь с алгоритмами Кнута-Морриса-Пратта,
а также Бойера-Мура-Хорспула.
Узнаете, что такое синтаксические деревья.
12. Криптография 12 уроков
Познакомитесь с подстановочными и перестановочными шифрами.
Узнаете как работают SP-сети и блочное шифрование.
Научитесь применять протокол Диффи-Хеллмана.
Узнаете несколько вариантов использования алгоритмов с открытым ключом, включая шифрование, цифровую подпись, а также гибридные схемы.
Узнаете о криптографическом хэшировании и его применении на практике.
Познакомитесь со схемой луковой маршрутизации и узнаете как работает Tor.
13. Сжатие 5 уроков
Узнаете об алгоритмах сжатия.
Научитесь кодировать серии данных.
Познакомитесь с кодом Хаффмана.
Освоите сжатие Лемпеля-Зива-Велча.
Узнаете как работает сжатие с потерями на примере растровых изображений и музыкальных-форматов.
14. Блокчейн 4 урока
Познакомитесь с устройством блокчейна.
Научитесь генерировать блоки и встраивать их в цепочку.
Узнаете об основных проблемах блокчейна.