ИСПОЛЬЗОВАНИЕ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА ДЛЯ ОЦЕНКИ СЛОЖНОСТИ АЛГОРИТМОВ ПРИ ОБУЧЕНИИ ПРОГРАММИРОВАНИЮ
Раздел: Применение искусственного интеллекта в организации учебного процесса
Журнал: Материалы V Всероссийской научно-практической конференции с междун. участием «ИИ в образовании. Современные достижения и перспективы применения: в генерации знаний, управлении, обучении, оценке результатов обучения и формировании компетенций обучающихся»
25 мая 2026 г.
Авторы: Журавлев Сергей Владимирович
Информационно-коммуникационные технологии в педагогическом образовании, 2026. № 2 (101). itped.ru
_______________________________________________________________________
УДК 372.800.2
С. В. Журавлев
S. V. Zhuravlev
Журавлев Сергей Владимирович, преподаватель, КГПИ КемГУ, г. Новокузнецк, Россия.
Zhuravlev Sergei Vladimirovich, lecturer, Kuzbass Humanitarian Pedagogical Institute of Kemerovo State University, Novokuznetsk, Russia.
ИСПОЛЬЗОВАНИЕ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА ДЛЯ ОЦЕНКИ СЛОЖНОСТИ АЛГОРИТМОВ ПРИ ОБУЧЕНИИ ПРОГРАММИРОВАНИЮ
THE USE OF ARTIFICIAL INTELLIGENCE TO ASSESS THE COMPLEXITY OF ALGORITHMS IN TEACHING PROGRAMMING
Аннотация. В статье демонстрируется, как может использоваться искусственный интеллект при обучении в курсе программирования анализу алгоритмов, рассматривается способность нейронной сети определять временную и пространственную сложность алгоритмов.
Annotation. The article demonstrates how artificial intelligence can be used in teaching algorithm analysis in a programming course, and examines the ability of a neural network to determine the time and space complexity of algorithms.
Ключевые слова: искусственный интеллект, нейронная сеть, обучение программированию, временная сложность алгоритма, пространственная сложность алгоритма.
Keywords: artificial intelligence, neural network, teaching programming, temporal complexity of algorithms, spatial complexity of algorithms.
В настоящее время в различных сферах деятельности наблюдается бум искусственного интеллекта (ИИ) – период быстрого роста в области ИИ [4]. Он вызван дешевыми видеокартами, открытыми моделями и стремлением к автоматизации – это меняет бизнес, работу и образование, рождая риски и новые профессии [1]. Не остаётся в стороне и образование – для повышения качества обучения ИИ всё активнее внедряется в эту сферу.
В предыдущей статье мы уже рассматривали применение нейронных сетей при обучении школьников программированию на Python на примере Chat GPT и убедились в том, что данная нейросеть умеет генерировать коды программ для решения задач, не только сформулированных в виде простого текста, но и представленных в других форматах, в том числе из загруженных файлов [2]. В этой статье речь пойдет о способности Chat GPT анализировать алгоритмы решения различных задач и оценивать их эффективность по времени и памяти. Для оценки эффективности алгоритма будем использовать такие характеристики, как временную и пространственную сложность, и определять их в лучшем и в худшем случаях. Перед нами стояла задача проверить, сможет ли Chat GPT оценить временную и пространственную сложность и уже заданного алгоритма, и алгоритма, который сначала нужно разработать.
Сначала в качестве примера мы сформулировали для нейронной сети запрос на определение сложности алгоритма по коду программы: «Определи с подробным рассуждением временную и пространственную сложность алгоритма в лучшем и в худшем случаях по прилагаемому коду программы».
n=int(input("Введите количество членов "))
s=0
import math
for i in range(1,n+1):
s=s+math.sin(i)/2**i
print(s)
Следующая часть текста содержит ответ нейросети.
Рассмотрим приведенный код. Он содержит очень простую конструкцию – цикл `for`, который выполняется `n` раз, и внутри цикла происходит только выполнение арифметической операции – сложение или деление.
Временная сложность
1. Основной блок – цикл `for i in range(1, n+1)`, который выполняет `n` итераций.
2. Внутри каждой итерации совершается одна арифметическая операция: вычисление `math.sin(i)/2**i` и прибавление результата к переменной `s`. Операции возведения в степень, деления и вызова функции `math.sin()` считаются закрепленными по времени – так как они выполняются за постоянное время `O(1)` для каждого значения `i`.
3. Таким образом, общее время – сумма `n` одинаковых по сложности операций:
T(n)=O(n)
Обратите внимание: Время выполнения не зависит от конкретных значений `i`, поскольку все операции, включая вызов `math.sin()`, считаются за `O(1)`.
Лучший и худший случаи: так как алгоритм не зависит от значения `n` по условию, а только от количества итераций, временная сложность в обоих случаях – `O(n)`.
Пространственная сложность
1. Используются переменные `s`, `i`, а также импортированная библиотека `math`.
2. Внутри цикла не создаются дополнительные структуры данных, кроме локальных переменных, и использованная память остаётся постоянной.
3. Таким образом, вспомогательная память – постоянна и равна `O(1)`.
Итоги
1. Временная память в обоих случаях O(n).
2. Пространственная сложность в обоих случаях O(1).
Как видим, нейросеть безукоризненно выполнила то, что от неё требовалось. Теперь предложим Chat GPT оценить сложность алгоритма решения по сформулированному условию задачи. Сформулируем промпт следующим образом: «Определи с подробным рассуждением временную и пространственную сложность алгоритма в лучшем и в худшем случаях по сформулированному условию задачи: Дан одномерный числовой массив, все элементы которого различны. Посчитать сумму всех неотрицательных элементов массива с четными индексами» [3].
Следующая часть текста содержит ответ нейросети.
Рассмотрим задачу: необходимо посчитать сумму всех неотрицательных элементов массива, расположенных на четных индексах.
Анализ алгоритма
Первым делом можно представить примерный псевдокод решения:
python
n = len(array)
sum = 0
for i in range(0, n, 2): # итерация по четным индексам
if array >= 0:
sum += array
print(sum)
Временная сложность
1. В цикле мы проходим по элементам массива с шагом 2 (четные индексы), то есть количество итераций равно примерно `n/2`, где `n` – размер массива.
2. Внутри каждой итерации – сравнение с нулем и, при необходимости, сложение. Каждая операция – `O(1)`.
3. Следовательно, суммарное время выполнения примерно равно n/2 × O(1) =O(n).
Варианты:
Лучший и худший случаи: в данной задаче их различия минимальны, потому что алгоритм не зависит от распределения элементов – он всегда проходится по половине массива и выполняет одинаковое количество операций. Независимо от элементов, время – `O(n)`.
Пространственная сложность
1. Основная переменная – сумма (`sum`), которая занимает `O(1)` памяти.
2. Остальные переменные — счетчик `i` и параметры массива, и они не требуют дополнительной динамической памяти.
3. Не создается новых массивов или структур – использование памяти постоянное.
Итог: пространственная сложность – `O(1)`.
Итоги
1. Временная память в обоих случаях O(n).
2. Пространственная сложность в обоих случаях O(1).
Видим, что и с этим заданием нейросеть справилась идеально. Теперь ещё больше усложним задачу и попросим Chat GPT оценить сложность алгоритма, указав лишь его название. Сформулируем промпт следующим образом: «Определи с подробным рассуждением временную и пространственную сложность алгоритма сортировки слиянием одномерного массива в лучшем и в худшем случаях».
Следующая часть текста содержит ответ нейросети.
Рассмотрим алгоритм сортировки слиянием (merge sort) для одномерного массива.
Общее описание алгоритма
- Алгоритм рекурсивно разбивает массив на две половины.
- Каждая половина сортируется независимо, после чего происходит слияние отсортированных половин в один отсортированный массив.
- Процесс продолжается рекурсивно, пока массив не станет из одного элемента (или пустым).
Временная сложность
В худшем и лучшем случаях:
- В каждом уровне рекурсии массив делится пополам, а количество уровней равно log2n.
- На каждом уровне все элементы участвуют в операциях слияния, то есть совокупное число операций (сравнений, присвоений) равно O(n).
- Следовательно, суммарная временная сложность:
T(n)=O(nlogn)
Этот показатель одинаков в худшем и лучшем случаях, так как независимо от распределения данных, каждый элемент должен быть встречен и слит в итоговом массиве.
Итог:
- Время в худшем: O(nlogn)
- Время в лучшем: O(nlogn)
Пространственная сложность
- Основные дополнительные структуры – буферные массивы для слияния, которые в процессе работы занимают O(n) памяти.
- Стек вызовов при рекурсии – глубиной log2n, и каждый вызов использует фиксированное пространство.
- Поэтому общая дополнительная память:
S(n)=O(n)
Обратите внимание, что существует версия сортировки слиянием, использующая дополнительный массив, и версия, реализуемая «на месте» (in-place), которая более сложна и обычно не обеспечивает такой же эффективности.
Итог:
- Пространственная сложность: O(n) как в худшем, так и в лучшем случаях.
Итоги
1. Временная память в обоих случаях O(nlogn).
2. Пространственная сложность в обоих случаях O(n).
Мы видим, что и с этим заданием нейросеть прекрасно справилась. Теперь, чтобы окончательно убедиться, что Chat GPT умеет анализировать любые алгоритмы, поставим перед ней самую сложную задачу: «Выбери из следующих алгоритмов наиболее эффективный по времени и памяти: сортировка обменом, сортировка выбором, сортировка Шелла, сортировка вставкой, сортировка слиянием, шейкерная сортировка, быстрая сортировка, пирамидальная сортировка, турнирная сортировка».
Следующая часть текста содержит ответ нейросети.
Наиболее эффективными по времени и памяти из перечисленных алгоритмов являются быстрая сортировка и пирамидальная сортировка.
- Быстрая сортировка (особенно в среднем случае) обладает различной скоростью в зависимости от выбора опорного элемента, но в среднем дает O(nlogn) по времени и использует меньше памяти (часто реализуется с помощью сортировки «на месте»). В худшем случае (при неудачном выборе опорного элемента) может быть до O(n2) по времени, но это редкое явление при хорошей реализации.
- Пирамидальная сортировка (Heap Sort) гарантирует O(nlogn) по времени в худшем случае и использует константное дополнительное пространство (линейное только для хранения исходных данных).
Таким образом, быстрая сортировка является наиболее популярным и эффективным средством для быстрого сортирования данных в среднем случае, а пирамидальная сортировка – более предсказуемой по времени в худшем случае, с меньшими требованиями к памяти.
Итог:
Наиболее эффективные: быстрая сортировка (лучший по скорости при среднем случае) и пирамидальная сортировка (при необходимости более предсказуемых характеристик по времени и памяти).
Итак, мы убедились, что нейронная сеть Chat GPT способна анализировать разные алгоритмы и определять их временную и пространственную сложность, что может быть использовано при обучении программированию. Например, можно предложить обучающимся сначала самостоятельно выполнить задания по оценке сложности алгоритмов, а затем проверить себя с помощью нейросети. Однако не следует считать все ответы Chat GPT единственно правильными, поскольку на некоторые вопросы, связанные с оценкой сложности алгоритмов, не может быть дан однозначный ответ. Поэтому ученикам необходимо внимательно анализировать ответы нейронной сети, и в некоторых случаях, возможно, они могут остаться при своём мнении. Таким образом, можно утверждать, что изучение данной темы с применением ИИ, помимо всего прочего, способствует формированию умения отстаивать свою точку зрения.
Список литературы
- Викулов, К. Д. Почему именно сейчас случился бум ИИ: предпосылки и последствия / К. Д. Викулов. – Текст: электронный. – URL: https://companies.rbc.ru/news/4gJjoo3QWu/pochemu-imenno-sejchas-sluchilsya-bum-ii-predposyilki-i-posledstviya/?ysclid=mpfj9dkybx456757371 (дата обращения: 12.05.2026).
- Журавлев, С. В. Использование искусственного интеллекта при изучении темы «Графика» в процессе обучения школьников программированию / С. В. Журавлев. – Текст: электронный // Информационно-коммуникационные технологии в педагогическом образовании: электронный научный журнал. – 2025. – № 05(98) июнь. – URL: https://itped.ru/articles/10503/ (дата обращения: 12.05.2026).
- Можаров, М. С. Введение в структурное программирование: Учебное пособие / М. С. Можаров, Г. Н. Бойченко. – 2-е изд., стереот. – Новокузнецк: Изд-во КузГПА, 2014. – 203 с. – Текст: непосредственный.
- AI boom / Wikipedia: [сайт]. – URL: https://en.wikipedia.org/wiki/AI_boom?ysclid=mpfjz2nsyk70413676 (дата обращения: 12.05.2026). – Текст: электронный.
© Журавлев С. В., 2026