Алгоритм

Основные понятия

Алгоритм — это последовательность действий, которая приводит к решению задачи или достижению цели.

Свойства алгоритма

  • Определённость — каждый шаг должен быть чётко описан, чтобы не допустить двусмысленности.
  • Конечность — алгоритм должен завершиться за конечное количество шагов.
  • Результативность — выполнение алгоритма всегда должно привести к решению задачи или выдаче результата.
  • Массовость — алгоритм применим к целому классу задач.

Виды алгоритмов

  • Линейный алгоритм — выполняется строго последовательно, без условий и повторов.
  • Ветвящийся алгоритм — содержит условие, от которого зависит дальнейший ход действий.
  • Циклический алгоритм — включает повторение одних и тех же действий, пока выполняется условие.
  • Детерминированный алгоритм — всегда выдаёт один и тот же результат при одинаковых входных данных.
  • Недетерминированный алгоритм — может выдавать разные результаты при одинаковых входных данных.
  • Рекурсивный алгоритм — вызывает сам себя.
  • Стохастический алгоритм — использует случайность.

Сложность алгоритмов

Для оценки сложности алгоритмов используется Big O нотация. Она показывает, как изменяется количество операций при увеличении объёма входных данных и помогает сравнивать эффективность разных алгоритмов.

НотацияНазваниеПримерХарактеристика
O(1)КонстантнаяДоступ к элементу массива по индексуВремя не зависит от размера данных
O(n)ЛинейнаяПоиск элемента в неотсортированном спискеВремя растёт пропорционально числу элементов
O(log n)ЛогарифмическаяБинарный поискВремя выполнения алгоритма растёт медленно при увеличении входных данных
O(n2)КвадратичнаяСортировка пузырькомВремя выполнения алгоритма растёт быстро при увеличении входных данных
O(2n)ЭкспоненциальнаяРешение задач переборомАлгоритмы быстро становятся неэффективными при увеличении входных данных