Что такое алгоритм?
Продвинутые темы
Алгоритм — это конечная последовательность чётко определённых шагов для решения задачи или выполнения вычисления.
Свойства алгоритма
- Конечность — завершается за конечное число шагов.
- Определённость — каждый шаг однозначен.
- Вход — принимает исходные данные (0 или больше).
- Выход — производит результат.
- Эффективность — шаги выполнимы за разумное время.
Пример
// Алгоритм поиска максимума
function findMax(arr) {
let max = arr[0];
for (const x of arr) {
if (x > max) max = x; // шаг сравнения
}
return max;
}Оценка алгоритмов
- Временная сложность (O большое) — как растёт время от размера входа.
- Пространственная сложность — сколько памяти нужно.
- Корректность — даёт ли верный результат.
Виды
Сортировки, поиск, обход графов/деревьев, «разделяй и властвуй», жадные, динамическое программирование.
Зачем важны
Выбор эффективного алгоритма определяет производительность на больших данных (например, O(log n) против O(n²)).
Коротко для собеседования
Алгоритм — конечная последовательность однозначных шагов для решения задачи (с входом, выходом, конечностью, определённостью). Оценивают по временной и пространственной сложности (O большое) и корректности. Выбор алгоритма определяет производительность.