О курсе
В этом курсе мы пройдём основные алгоритмы и структуры данных. Примеры кода написаны на C#, однако 99% материала будет ясно любому Java-программисту, поскольку синтаксис языков очень схож, а примеры кода алгоритмов и структур данных так вообще будут почти полностью совпадать и в C# и в Java. В курсе есть лишь несколько лекций посвящённых исключительно библиотекам C#.
На данный момент курс покрывает следующие темы:
Введение в алгоритмы и структуры данных: структура данных, абстрактный тип данных,
разница между этими понятиями. Что такое алгоритм и почему всё это для нас важно?
Введение в анализ алгоритмов: сколько времени займёт исполнение программы,
построение log-log графика, аппроксимации, порядок роста сложности (Big-O нотация), потребление памяти
Массивы: массивы в C#, массивы в памяти, сложность операций на массивах
Алгоритмы сортировки: пузырьковая, выборкой, вставками, рекурсия, Шелл-сортировка, слиянием, быстрая, стабильность алгоритмов сортировки
Списки: List встроенный в BCL, узлы (ноды), связный список (односвязный, двусвязный),
LinkedList встроенный в BCL
Стек: теория и практика, на массиве,
на связном списке, встроенный в BCL
Очереди: теория и практика, на массиве, кольцевой буфер,
на связном списке, встроенная в BCL
Алгоритмы поиска: линейный, бинарный
Символьные таблицы: введение, API, таблицы на последовательном поиске,
таблица на бинарном поиске
Хеш-таблицы: введение, хеширование, GetHashCode, подходы к разрешению коллизий: раздельные цепочки и линейное пробирование, тип Dictionary встроенный в BCL, типы представляющие множества встроенные в BCL
Деревья: двоичное дерево поиска и его реализация (больше будет добавлено в будущем)
Пирамиды: введение, пирамиды и массивы, пирамидальная сортировка
Различные алгоритмы: эта секция будет расширяться, а пока покрывает алгоритм «решето Эратосфена»
Содержание курса
Материалы и коммьюнити
-
Исходный код курса