1. Знакомый момент
Утром тебе хочется чая. Ты не задумываешься, как его заваривают. Ты просто делаешь шаги один за другим: наливаешь воду, кипятишь её, кладёшь пакетик в чашку, заливаешь кипятком и ждёшь пару минут.
Только что ты выполнил алгоритм. Самый настоящий, от начала до конца. Просто он был про чай, а не про числа.
Ничего принципиально сложнее в этом курсе не будет. Мы только научимся внимательнее относиться к шагам.
2. Простыми словами
Алгоритм это точный список шагов. Он ведёт от того, что у тебя есть, к тому, что ты хочешь получить.
У любого алгоритма три части: вход (что тебе дано), шаги (что ты делаешь) и выход (что получается в конце). Больше запоминать ничего не нужно.
Вход → шаги → выход. Так устроен любой алгоритм.
3. Почему компьютеру всё надо разжевать
Допустим, у тебя есть друг, который делает ровно то, что ты сказал, ни больше ни меньше. Ты говоришь: «Сделай бутерброд». Он замирает. Какой хлеб? Что намазать? Сначала резать или сначала мазать?
Компьютер ведёт себя как этот друг. Он ничего не угадывает и ничего не додумывает за тебя. Поэтому алгоритм записывают мелкими и ясными шагами. Каждый шаг должен быть понятен сам по себе, без догадок.
Правило на весь курс: если шаг можно понять двумя способами, это ещё не шаг. Разбей его на шаги помельче.
4. Твоя очередь (без кода)
Вот «рецепт» для задачи «какое из двух чисел больше». Шаги перепутаны. Расставь их в правильном порядке, в уме:
- Скажи вслух: «второе больше».
- Возьми два числа и назови их A и B.
- Если A больше B, скажи «первое больше» и остановись.
Правильный порядок: 2 → 3 → 1. Сначала вход (взять числа), потом шаги (сравнить их), потом выход (ответ). Те же три части, что и с чаем.
У этого рецепта есть одна дыра: если числа равны, он скажет «второе больше». Такие случаи на самой границе часто ломают программы. Мы вернёмся к ним, когда дойдём до условий «если/иначе».
5. Главное
Алгоритм это способ описать любую задачу так точно, чтобы её мог повторить кто угодно, даже компьютер. Дальше мы учимся одному: разбивать задачи на мелкие ясные шаги. Начнём с самых простых.
Для тех, кто уже пишет код. Да, это «функция: аргументы → тело → return», плюс детерминизм (одинаковый вход даёт одинаковый выход) и конечность (алгоритм когда-нибудь останавливается). Big-O, инварианты и структуры данных мы пока пропускаем. Они появятся позже, когда будет на чём их показать. Если тебе всё это знакомо, первые уроки займут минуты. Притормозишь ты позже, на распознавании паттернов и задачах на время.
На LeetCode
Под этот урок задач на LeetCode пока нет, потому что кода в нём ещё нет. Любая задача на LeetCode устроена как рецепт чая, с входом, шагами и выходом, а первые настоящие задачи будут в уроках 6 и 7.
Ты читаешь как гость
Все бесплатные уроки открыты: читай и запускай. Бесплатный аккаунт отмечает пройденные уроки и показывает, где ты в курсе.