Алгоритм
Основные понятия
Алгоритм - это последовательность действий, которая приводит к решению задачи или достижению цели.
Свойства алгоритма
- Определённость - каждый шаг должен быть чётко описан, чтобы не допустить двусмысленности.
- Конечность - алгоритм должен завершиться за конечное количество шагов.
- Результативность - выполнение алгоритма всегда должно привести к решению задачи или выдаче результата.
- Массовость - алгоритм применим к целому классу задач.
Виды алгоритмов
- Линейный алгоритм - выполняется строго последовательно, без условий и повторов.
- Ветвящийся алгоритм - содержит условие, от которого зависит дальнейший ход действий.
- Циклический алгоритм - включает повторение одних и тех же действий, пока выполняется условие.
- Детерминированный алгоритм - всегда выдаёт один и тот же результат при одинаковых входных данных.
- Недетерминированный алгоритм - может выдавать разные результаты при одинаковых входных данных.
- Рекурсивный алгоритм - вызывает сам себя.
- Стохастический алгоритм - использует случайность.
Сложность алгоритмов
Для оценки сложности алгоритмов используется Big O нотация. Она показывает, как изменяется количество операций при увеличении объёма входных данных и помогает сравнивать эффективность разных алгоритмов.
| Нотация | Название | Пример | Характеристика |
|---|---|---|---|
| Константная | Доступ к элементу массива по индексу | Время не зависит от размера данных | |
| Линейная | Поиск элемента в неотсортированном списке | Время растёт пропорционально числу элементов | |
| Логарифмическая | Бинарный поиск | Время выполнения алгоритма растёт медленно при увеличении входных данных | |
| Квадратичная | Сортировка пузырьком | Время выполнения алгоритма растёт быстро при увеличении входных данных | |
| Экспоненциальная | Решение задач перебором | Алгоритмы быстро становятся неэффективными при увеличении входных данных |