Теория: алгоритмы и алгоритмизация
Алгоритм — это точное и полное описание последовательности действий над заданными объектами, позволяющее получить конечный результат. Термин происходит от имени персидского математика Мухаммеда аль-Хорезми (Algorithmi).
🎯 Ключевые моменты
Виды алгоритмов по структуре
| Структура | Описание | Пример в ЕГЭ |
|---|---|---|
| Линейная (следование) | Последовательное выполнение операций без ветвлений | Вычисление арифметического выражения |
| Ветвление (развилка) | Выбор одного из путей выполнения в зависимости от условия | Проверка ввода, обработка разных случаев |
| Циклическая | Многократное выполнение блока операций | Обработка массивов, перебор элементов |
| Вспомогательная (подпрограмма) | Выделение части алгоритма в отдельный модуль | Функции в программировании |
Свойства алгоритмов
Алгоритмы в информатике должны соответствовать определённым требованиям для их корректной реализации на компьютере.
7 основных свойств алгоритма
📝 Пример для ЕГЭ: Алгоритм решения квадратного уравнения обладает массовостью (работает для любых коэффициентов), определённостью (чёткие формулы), результативностью (всегда находит корни или сообщает об их отсутствии).
Блок-схемы и способы записи
Блок-схема — графическое представление алгоритма с помощью специальных геометрических фигур.
| Блок | Изображение | Назначение |
|---|---|---|
| Начало/Конец | ▣ | Пуск и останов алгоритма |
| Процесс | ▭ | Выполнение операции, вычисления |
| Ввод/Вывод | ▱ | Ввод данных или вывод результата |
| Решение (условие) | ◇ | Проверка условия, ветвление |
| Цикл с параметром | ▭ с чертой | Организация циклов с известным числом повторений |
Пример блок-схемы: поиск максимума
Шаги алгоритма:
- Начало
- Ввод массива A
- max = A[0]
- i = 1
- Пока i < n
- Если A[i] > max
- max = A[i]
- i = i + 1
- Вывод max
- Конец
На псевдокоде:
Сложность алгоритмов (O-нотация)
Сложность алгоритма — оценка времени выполнения или используемой памяти в зависимости от размера входных данных.
📈 Виды сложности
- O(1) — постоянная (доступ по индексу)
- O(log n) — логарифмическая (бинарный поиск)
- O(n) — линейная (поиск в массиве)
- O(n log n) — быстрая сортировка
- O(n²) — квадратичная (пузырьковая сортировка)
- O(2ⁿ) — экспоненциальная (задача коммивояжёра)
⚠️ Что важно для ЕГЭ
- Уметь оценить сложность простого алгоритма
- Знать, что O(n²) хуже чем O(n log n)
- Понимать, как вложенные циклы влияют на сложность
- Различать временную и ёмкостную сложность
- Знать сложность стандартных операций
Алгоритмы сортировки (Задание 26 ЕГЭ)
Задание 26 в ЕГЭ по информатике проверяет умение работать с алгоритмами сортировки и обработки целочисленной информации.
💡 Алгоритм решения задания 26
- Прочитать условие и определить входные данные
- Считать все целые числа и сохранить в структуре данных
- Определить вид сортировки (по возрастанию/убыванию)
- Отсортировать данные выбранным способом
- После сортировки выполнить требуемые действия
- Проверить корректность сортировки
- Записать ответ в требуемом формате
Основные алгоритмы сортировки
| Алгоритм | Сложность | Принцип работы | Использование в ЕГЭ |
|---|---|---|---|
| Сортировка пузырьком | O(n²) | Многократный проход с сравнением соседних элементов | Базовый пример, для понимания принципов |
| Сортировка выбором | O(n²) | Поиск минимального элемента и обмен | В заданиях на ручную сортировку |
| Сортировка вставками | O(n²) | Построение отсортированной последовательности | Для почти отсортированных массивов |
| Быстрая сортировка | O(n log n) | Разделение на подмассивы относительно опорного элемента | Эффективная сортировка в задачах |
| Сортировка слиянием | O(n log n) | Разделение на части, сортировка и слияние | Для больших данных, стабильная |
Интерактивные задания
Закрепите теорию на практике. Решите задания, проверьте ответы и получите объяснения.
Определите сложность алгоритма
Условие: Дан следующий фрагмент кода на Python:
Какова временная сложность этого алгоритма в O-нотации?
Определите свойство алгоритма
Условие: «Алгоритм решения квадратного уравнения работает для любых коэффициентов a, b, c и всегда находит корни или сообщает об их отсутствии.»
Какое свойство алгоритма здесь проявляется?
Задача на сортировку (ЕГЭ 26)
Условие: Дан массив чисел: [50, 22, 34, 40, 16]. Необходимо найти максимальную цепочку чисел, где разница между соседними элементами ≥ 8. Каждый элемент можно использовать только один раз в цепочке.
Какова длина максимальной цепочки?
Тест на определение уровня подготовки
Пройдите тест из 10 вопросов, чтобы оценить свой текущий уровень по теме «Алгоритмика» и получить персональные рекомендации.
Вопросы соответствуют формату ЕГЭ 2026 года.