Задания № 22, 23 · ЕГЭ

Корректность алгоритма

Как понять, что алгоритм решает задачу правильно
2 мин чтенияСложность: Обновлено 29 сентября 2026

Корректность алгоритма — это соответствие результата работы алгоритма поставленной задаче для всех допустимых входных данных. Алгоритм может быть быстрым и удобным, но некорректным, если хотя бы на одном допустимом входе выдаёт неправильный результат или не завершается.

Корректность алгоритмаСлово «корректность» означает правильность и соответствие установленным требованиям.
Свойство алгоритма получать правильный результат, требуемый условием задачи, для каждого допустимого набора входных данных и завершать работу, если это предусмотрено задачей.

Что именно проверяют

У алгоритма есть входные данные, условие их допустимости и требуемый результат. Алгоритм корректен, если при любом входе, удовлетворяющем условию, он завершает работу и выдаёт именно такой результат. Проверка одного или нескольких примеров не доказывает корректность для всех входов: она только помогает обнаружить ошибки.

\[\forall x \in D\colon A(x)=R(x)\]1

Здесь \(D\) — множество допустимых входных данных, \(A(x)\) — результат работы алгоритма, а \(R(x)\) — правильный результат задачи. Если алгоритм должен только определить возможность действия, результатом может быть, например, значение «да» или «нет».

№
Пример

Задача: вывести большее из двух чисел. Алгоритм сравнивает \(a\) и \(b\): если \(a>b\), выводит \(a\), иначе выводит \(b\). Он корректен для любых двух чисел, потому что при \(a>b\) больше \(a\), а при \(a\le b\) больше либо равно \(b\). В частности, случай \(a=b\) также обработан.

!
Не путайте с тестированием

Тестирование алгоритмов запускает алгоритм на выбранных примерах и может найти ошибку, но не доказывает правильность для всех допустимых входов. Проверка алгоритма — более общее рассуждение о соответствии алгоритма условию; оно может включать доказательство, анализ инварианта или разбор всех случаев.

Проверьте себя

Алгоритм правильно решает задачу на 100 выбранных тестах. Можно ли утверждать, что он корректен для всех допустимых данных?

Главное за минуту

Главное

  • Корректный алгоритм для каждого допустимого входа выдаёт требуемый результат и завершает работу.
  • Корректность относится ко всем допустимым данным, а не только к проверенным примерам.
  • Тестирование помогает находить ошибки, но само по себе не доказывает корректность.