Привет!
Перед вами бесплатный хендбук по алгоритмам. Здесь вас ждёт не только понятная теория, но и много практики, которая поможет закрепить знания и научиться применять алгоритмическое мышление на деле.
Какие темы вам предстоит освоить
Этот хендбук поможет вам разобраться в алгоритмах — от базовых понятий до сложных задач, с которыми сталкиваются программисты в работе. Мы будем идти поэтапно: от принципов и техник к решению реальных задач.
Хендбук состоит из 9 глав.
-
Глава №1 — вводная (мы сейчас в ней). Она — обо всём, что нужно знать, прежде чем начинать работу с хендбуком. Разберёмся, что такое алгоритмы, зачем они нужны и как оценивать их эффективность
-
Глава №2 — структуры данных. Познакомитесь со списками, множествами, словарями, стеками, очередями и деком.
-
В главе №3 — практические задачи. Попробуете применить полученные знания на практике: решите классические задачи с автоматической проверкой.
-
Глава №4 — разминка на простых алгоритмах. Здесь вас ждут задачи на последовательные вычисления, НОД, НОК и числа Фибоначчи.
-
Глава №5 — графы. Изучите представление графов, алгоритмы обхода, поиск кратчайших путей и компоненты связности.
-
В главе №6— техники проектирования алгоритмов. Вы узнаете, как работают перебор, жадные алгоритмы, динамическое программирование, рекурсия, подход «разделяй и властвуй» и рандомизация.
-
Глава №7 — жадные алгоритмы. Отработаете жадные подходы на задачах про деньги, рекламу, зарплаты и призы.
-
Глава №8 — динамическое программирование. Большая глава с разнообразными задачами: от размена и редактирования строк до рюкзака и скобочной последовательности.
-
Глава №9 — алгоритмы «разделяй и властвуй». Погрузитесь в двоичный поиск, быструю сортировку и задачи на деление массива.
Как это пригодится в реальной жизни
Знания об алгоритмах — это не просто формулы и схемы. Это возможность изменить способ мышления, чтобы эффективнее решать задачи в работе и жизни, — даже если вы не программист.
А если ваша работа связана с кодом, то алгоритмы помогут создать базу для любой сложной программы: от поисковиков до игр, от рекомендательных систем до мобильных приложений.
Понимание алгоритмов пригодится, если вы хотите:
- писать код, который работает быстро даже на больших данных;
- уверенно решать задачи на собеседованиях в IT-компании;
- участвовать в хакатонах, олимпиадах и конкурсах по программированию;
- проектировать архитектуру приложений и выбирать правильные структуры данных;
- углубиться в машинное обучение и понимать, как «под капотом» устроены модели;
- перейти от простого кодинга к инженерному подходу.
Этот хендбук — хорошая отправная точка не только для того, чтобы научиться решать алгоритмические задачи, но и для дальнейшего изучения смежных тем. После него будет проще продолжить обучение в хендбуках по машинному обучению, математике для анализа данных и языкам программирования.
Как устроен этот хендбук
Отмечайте параграфы как прочитанные — это поможет отслеживать прогресс. Для этого внизу страницы есть специальная кнопка «Параграф не прочитан».

Изменение статуса главы отразится на странице содержания и в прогресс-баре хендбука:

Для перемещения по хендбуку вы можете воспользоваться навигацией внутри страниц:

После некоторых разделов есть мини-квизы, они помогут понять, что вы уже хорошо усвоили. Если вы готовы, нажмите «Начать» в конце параграфа и проверьте себя.

Открывайте тренажёр с задачами после каждого параграфа, чтобы закрепить навык. Для этого нажмите на кнопку «Выполнять задачи» после параграфа.
Как работать с заданиями — читайте здесь.
А если что-то непонятно — можно в любой момент обратиться в сообщество студентов.