Введение в алгоритмы
Познакомитесь со структурой курса, с понятиями алгоритма и структуры данных, а также с простейшими алгоритмами на массивах.
Алгоритм бинарного поиска
Узнаете, что такое бинарный поиск, как он работает, почему и насколько он эффективнее простого поиска перебором, а также о его возможностях и тонкостях.
Хеш-таблицы и хеш-функции
Изучите принципы построения хеш-таблиц и особенности работы с ними, познакомитесь с понятием хеш-функции, проблемой их коллизий, а также решением этой проблемы.
Связные списки
Узнаете, по каким принципам строятся и как работают односвязный и двусвязный списки, чем они лучше и чем хуже массивов.
Стек и очередь
Познакомитесь со структурами данных — стек, очередь и дек (двусвязная очередь), узнаете принципы их построения и работы.
Алгоритмы сортировки
Узнаете о принципах и особенностях популярных алгоритмов сортировки — SelectionSort, QuickSort и MergeSort. Научитесь оценивать на их примерах сложность алгоритмов по времени и памяти.
Рекурсивные алгоритмы
Научитесь создавать и применять рекурсивные алгоритмы, а также познакомитесь с принципами оценки их сложности.
Сложность алгоритмов и О-нотация
Узнаете, что такое О-нотация, научитесь оценивать сложность алгоритмов и различать их по памяти и времени.
Жадные алгоритмы
Познакомитесь с принципами работы жадных алгоритмов на примере итераций с двумя и тремя индексами, а также алгоритмов на строках.
Деревья. Двоичные деревья поиска
Узнаете о принципах работы и особенностях деревьев на примере бинарного дерева. Познакомитесь с алгоритмами поиска, добавления и удаления элементов из него.
Деревья. Обход в ширину и глубину
Познакомитесь со сложными типами деревьев, которые применяют на практике. Узнаете, как они устроены, и научитесь с ними работать.
Куча (Heap)
Изучите основные принципы балансировки деревьев. Познакомитесь со структурой данных «куча».
Бор. Суффиксное дерево. B-дерево
Узнаете, что такое суффиксные деревья и как они применяются в алгоритмах поиска и сжатия.
Графы и рекурсивные алгоритмы
Узнаете, какие бывают графы, что такое ребро, вершина, взвешенный и ориентированный граф.
Топологическая сортировка и неочевидные применения графов
Научитесь решать задачи обхода графов в ширину и в глубину и поиска кратчайшего пути. Познакомитесь с принципами топологической сортировки и другими задачами, которые решают на графах.
Алгоритмы сжатия информации
Изучите алгоритмы сжатия информации без потерь. Узнаете, по каким принципам работают современные алгоритмы архивации и какие алгоритмы используются для сжатия аудиофайлов и изображений.
Битовые алгоритмы
Научитесь работать с основными битовыми операциями и алгоритмами, которые часто применяют на практике. Изучите маски и битовые индексы.
Алгоритмы хэширования. Криптографические алгоритмы.
Изучите принципы работы алгоритма расчёта контрольных сумм CRC и алгоритмов хэширования MD5 и SHA. Познакомитесь с алгоритмами симметричного и асимметричного шифрования, а также популярными алгоритмами RSA и AES.