ENIGMA AI
ENIGMA AI

Что такое итерация?

встречается 1× junior algorithms

Как ответить

Итерация — это однократное выполнение тела цикла. Проще говоря, когда мы организуем повторяющуюся последовательность действий, каждый проход — одна итерация. Понимание итерации — база для любых алгоритмов, потому что именно итеративные процессы (циклы) формируют линейную сложность O(n) и позволяют перебирать данные.

На практике итерация обычно выглядит так: есть счётчик (или указатель), условие продолжения и тело, которое выполняется на каждом шаге. Вот простой пример на Python — суммирование элементов массива:

def sum_array(arr):
    total = 0
    for i in range(len(arr)):  # каждая итерация обрабатывает один элемент
        total += arr[i]
    return total

Здесь for i in range(len(arr)) задаёт количество итераций. Можно сделать то же самое с while:

def sum_array_while(arr):
    total = 0
    i = 0
    while i < len(arr):          # условие проверяется перед каждой итерацией
        total += arr[i]
        i += 1                 # шаг итерации
    return total

Ключевой момент — итерация противопоставляется рекурсии. Рекурсия вызывает саму себя с меньшей задачей, а итерация просто крутится в цикле. Для джуниора важно понимать: итеративные алгоритмы обычно проще контролировать по памяти (нет стека вызовов) и они легче оптимизируются компилятором.

Из практики: при проходе по массиву сложность O(n) означает, что количество итераций прямо пропорционально длине массива. Вложенные циклы дают O(n²) — это уже более 10⁵ итераций на 1000 элементах, и программа ощутимо тормозит. Знание итераций помогает выбирать эффективные алгоритмы.

  • Итерация — один шаг выполнения тела цикла.
  • Циклы (for, while) построены на последовательности итераций.
  • Важно контролировать условие выхода, чтобы не получить бесконечный цикл.
  • В отличие от рекурсии, итерация не требует дополнительной памяти на стек вызовов.

Ключевые тезисы

  • Итерация — это одно выполнение тела цикла, а цикл — последовательность итераций.
  • Отличие от рекурсии: итерация использует повторение без вызова функции из самой себя.
  • Примеры: перебор массива с for, while; каждая итерация делает однотипное действие.
  • Количество итераций напрямую связано с вычислительной сложностью (O(n), O(n²) и т.д.).
  • Важны правильные условия выхода и счётчики для избежания бесконечного цикла.

Что спросят дальше

  • — Какой будет сложность, если внутри каждой итерации ещё один цикл до N? Как это повлияет на время выполнения при N=1000?
  • — Чем итератор (iterator) в Python отличается от простой итерации через индекс? Приведи пример, когда итератор удобнее.
  • — Напиши рекурсивную версию функции sum_array и сравни количество вызовов с итерациями. В каком случае может упасть стек?

Готовьтесь к собеседованию с ENIGMA AI

AI-суфлёр подсказывает ответы прямо на собеседовании в реальном времени — незаметно для интервьюера.

Скачать приложение