Алгоритмы
Введение в алгоритмы - определение, свойства, классификация, примеры применения и связь с вычислительной сложностью в программировании.
Тренировка алгоритмического мышления
Примеры из реальной жизни для понимания, как на самом деле выглядят алгоритмы в программировании.
Регулярные выражения
Регулярные выражения — шаблон для поиска и проверки текста. Введение, лаборатория и маршрут обучения для новичков.
Регулярные выражения — синтаксис с нуля
Как читать шаблон слева направо — литералы, точка, классы символов, квантификаторы, якоря. Разбор логина, даты, пути и времени по частям.
Регулярные выражения — группы и замена
Круглые скобки, захват частей строки, обратные ссылки, альтернатива, поиск и замена в редакторе и коде.
Регулярные выражения — проверки вокруг совпадения
Опережающие и ретроспективные проверки (lookahead, lookbehind), несколько условий для пароля, цена после знака доллара.
Регулярные выражения — флаги и жадность
Флаги i, m, g, s и аналоги в .NET; жадные, ленивые и жадные квантификаторы; почему .* захватывает слишком много.
Регулярные выражения — рецепты и командная строка
Готовые шаблоны для логов, email, URL, IP; grep, ripgrep, sed; типичные ошибки и различия движков.
Алгоритм обработки
Универсальная структура алгоритма обработки - этапы инициализации, загрузка данных, цикл обработки событий, принятие решений и завершение выполнения.
Алгоритмы сортировки и поиска
Алгоритмы сортировки и поиска - пузырьковая, быстрая, слиянием, бинарный поиск, оценка временной сложности и практическое применение в разработке.
Анализ эффективности алгоритмов
Оценка времени и памяти. Алгоритмическая сложность и анализ эффективности программ.
Нотация Большое O
Нотация Большое O — язык оценки масштабируемости: O(1)…O(n!), примеры на структурах данных, сортировке, поиске и типичных ловушках в коде.
Классы временной сложности алгоритмов
P, NP, экспоненциальное время. Скорость работы программ.
Линейная, квадратичная и логарифмическая сложность
Линейная, квадратичная и логарифмическая сложность - как оценивать рост затрат алгоритма при увеличении входа.
Графы — модели и задачи
Вершины, рёбра, направленные и взвешенные графы. Задачи на путях, соцсети и связь с алгоритмами.
Кратчайший путь — алгоритм Дейкстры
Поиск кратчайших расстояний от одной вершины во взвешенном графе с неотрицательными весами. Псевдокод и ограничения.
PageRank — ранжирование на графе
Как оценить важность веб-страниц по ссылкам: блуждающий пользователь, матрица переходов и степенной метод.
Евклид и классические алгоритмы на числах
Наибольший общий делитель, жадные идеи и связь с повседневными задачами. Дополнение к введению в алгоритмы.
Алгоритмы — итоги
Итоги раздела по алгоритмам - ключевые понятия, классификация методов, анализ сложности, практические примеры и рекомендации по изучению.
Алгоритмы — чек-лист
Чек-лист по алгоритмам - свойства алгоритмов, классы сложности, методы сортировки, поиск в графах, практическое применение и оценка производительности.
Алгоритмы — о разделе
Обзор раздела Алгоритмы - основы построения, сортировка, поиск, графы, оценка эффективности и практические задачи для разработчиков.