Основы алгоритмов
С чего начинаются алгоритмы
Алгоритм — это не обязательно сложная формула или хитрая структура данных. Чаще всего всё начинается с простой последовательности действий: перебрать значения, что-то посчитать, найти лучший элемент, разобрать число на цифры или использовать свойства делимости.
Этот раздел собирает именно такие базовые приёмы. Они встречаются в огромном количестве задач и станут строительными блоками для более сложных алгоритмов дальше по курсу.
Что входит в раздел
- Полный перебор. Научимся систематически проверять все подходящие варианты и понимать, когда прямое решение — это нормальный и достаточный выбор.
- Подсчёт. Разберём задачи, где нужно пройти по данным и посчитать количество элементов, удовлетворяющих условию.
- Минимум и максимум. Научимся находить наименьшее и наибольшее значение за один проход, а также правильно выбирать начальное значение для результата.
- Работа с цифрами числа. Посмотрим, как извлекать цифры целого числа и строить на этом простые алгоритмы.
- Делимость. Используем остаток от деления для проверки кратности и решения типичных задач с делителями.
- Математические задачи. Соберём базовые числовые приёмы вместе и научимся переводить условие задачи в последовательность вычислений.
Как эти темы связаны
Почти во всех задачах этого раздела используется один и тот же общий подход: определить, какие данные нужно просмотреть, какое состояние хранить во время обхода и как обновлять его на каждом шаге. Сначала это будет простой перебор, затем счётчик, текущий минимум или отдельные цифры числа.
int count = 0;
for (int value : numbers) {
if (value > 0) {
count++;
}
}
Код небольшой, но в нём уже есть основа множества алгоритмов: последовательный обход, условие и состояние, которое меняется по мере обработки данных.