О разделе
В статьях раздела алгоритмы и циклы обработки данных по возможности сначала записываются псевдокодом на русском (для i от …, если … то), а примеры на Python или другом языке иллюстрируют ту же логику. Так проще учиться до углублённого изучения синтаксиса в разделе "Языки".
Рекомендуемый порядок
| Шаг | Статья | Зачем |
|---|---|---|
| 0 | Базовая информатика — алгоритмы и алгоритмизация | Свойства, блок-схемы, циклы, игры (школьный минимум) |
| 1 | Алгоритмы | Определение, свойства, Евклид |
| 2 | Нотация Большое O → линейная, квадратичная, логарифмическая; практика — шпаргалка Big-O | Язык оценки скорости |
| 3 | Сортировка и поиск | Базовые операции над данными |
| 4 | Графы → Дейкстра → PageRank | Сети, пути, ранжирование; теория — Графы — маршруты, остовы и раскраски |
| 5 | Евклид и классика | Числовые алгоритмы |
| 6 | Анализ эффективности | Практика и платформы |
| 7 | Алгоритмическое мышление, алгоритм обработки | Закрепление |
| 8 | Итоги, чек-лист | Самопроверка |
| 8b | Big-O — шпаргалка с примерами | O(1)…O(n!) на Python: построчный разбор, ловушки in / sort |
| 9 | Алгоритмы на Python — ЕГЭ и олимпиадка | Готовый код с разбором: ввод-вывод, поиск, графы, ДП |
| 9b | Python — работа с файлами и текстом | Ввод из input.txt, построчное чтение, числа из файла |
| 9a | Java — консольные задачи | Те же базовые приёмы на Java: массив, сортировка, строки |
| 9c | Pascal / Free Pascal — типовые программы | Школа, PascalABC, Lazarus: readln, массив, пузырёк, файлы |
| 9d | Кумир — Чертёжник и исполнитель | ОГЭ: Робот, Чертёжник, Черепаха; теория — глава Кумир |
| 9e | C++ — олимпиадные шаблоны | STL на контесте, графы, ДП, DSU; продвинутое — топосорт, Fenwick, KMP |
| 10 | Регулярные выражения → Regex — готовые паттерны | Теория, лаборатория и копируемые шаблоны email, лога, grep |
Школьный маршрут из базовой информатики: раздел 21 — алгоритмы и алгоритмизация → Алгоритмы → Тренировка алгоритмического мышления → Алгоритмы сортировки и поиска (линейный и бинарный поиск) → Нотация Большое O → Lab / Big-O — шпаргалка → практика на выбранном языке (см. шаги 9–9e в таблице выше).
После теории закрепите материал в таком порядке:
- Big-O — шпаргалка — оценка сложности по коду;
- готовые решения на языке
- разбор реализаций на C++ вручную — TheAlgorithms/C-Plus-Plus, документация; на контесте используйте STL из Lab / 1125;
- Swing — окна и кнопки — лабораторная "калькулятор в окне" на Java;
- ввод из файла — Python — файлы и текст или файлы в Lab / 1140 (
Assign,Reset,input.txt).
Алгоритмы
Последовательности действий для решения задач. Введение в алгоритмы.
Тренировка алгоритмического мышления
Примеры из реальной жизни для понимания, как на самом деле выглядят алгоритмы в программировании.
Регулярные выражения
Регулярные выражения — шаблон для поиска и проверки текста. Введение, лаборатория и маршрут обучения для новичков.
Регулярные выражения — синтаксис с нуля
Как читать шаблон слева направо — литералы, точка, классы символов, квантификаторы, якоря. Разбор логина, даты, пути и времени по частям.
Регулярные выражения — группы и замена
Круглые скобки, захват частей строки, обратные ссылки, альтернатива, поиск и замена в редакторе и коде.
Регулярные выражения — проверки вокруг совпадения
Опережающие и ретроспективные проверки (lookahead, lookbehind), несколько условий для пароля, цена после знака доллара.
Регулярные выражения — флаги и жадность
Флаги i, m, g, s и аналоги в .NET; жадные, ленивые и жадные квантификаторы; почему .* захватывает слишком много.
Регулярные выражения — рецепты и командная строка
Готовые шаблоны для логов, email, URL, IP; grep, ripgrep, sed; типичные ошибки и различия движков.
Алгоритм обработки
Универсальный алгоритм обработки - инициализация, загрузка, реакция, логика.
Алгоритмы сортировки и поиска
Если вы начнёте какой-нибудь курс изучать, вероятнее всего как раз затронете в одной из первых тем алгоритмы сортировки и поиска.
Анализ эффективности алгоритмов
Оценка времени и памяти. Алгоритмическая сложность и анализ эффективности программ.
Нотация Большое O
Нотация Большое O — язык оценки масштабируемости: O(1)…O(n!), примеры на структурах данных, сортировке, поиске и типичных ловушках в коде.
Классы временной сложности алгоритмов
P, NP, экспоненциальное время. Скорость работы программ.
Линейная, квадратичная и логарифмическая сложность
Линейная, квадратичная и логарифмическая сложность - как оценивать рост затрат алгоритма при увеличении входа.
Графы — модели и задачи
Вершины, рёбра, направленные и взвешенные графы. Задачи на путях, соцсети и связь с алгоритмами.
Кратчайший путь — алгоритм Дейкстры
Поиск кратчайших расстояний от одной вершины во взвешенном графе с неотрицательными весами. Псевдокод и ограничения.
PageRank — ранжирование на графе
Как оценить важность веб-страниц по ссылкам: блуждающий пользователь, матрица переходов и степенной метод.
Евклид и классические алгоритмы на числах
Наибольший общий делитель, жадные идеи и связь с повседневными задачами. Дополнение к введению в алгоритмы.
Алгоритмы — итоги
Итоги раздела «Алгоритмы» — FAQ и краткие ответы по теме.
Алгоритмы — чек-лист
Чек-лист раздела «Алгоритмы» — вопросы для самопроверки.
Алгоритмы — о разделе
Подборка материалов раздела Алгоритмы в энциклопедии Вселенная IT.
В подборках
Статья входит в тематические подборки и блок "С чего начать?" на главной. Соседние шаги того же маршрута:
База программиста — Основы интеграционного взаимодействия — о разделе, Код — о разделе, Основы информационной безопасности — о разделе, Выполнение кода — о разделе, Терминал — о разделе, Проект, структура и фреймворки — о разделе.