1.1. Прежде чем начать

Привет!

Перед вами бесплатный хендбук по алгоритмам. Здесь вас ждёт не только понятная теория, но и много практики, которая поможет закрепить знания и научиться применять алгоритмическое мышление на деле.

Какие темы вам предстоит освоить

Этот хендбук поможет вам разобраться в алгоритмах — от базовых понятий до сложных задач, с которыми сталкиваются программисты в работе. Мы будем идти поэтапно: от принципов и техник к решению реальных задач.

Хендбук состоит из 9 глав.

  • Глава №1 — вводная (мы сейчас в ней). Она — обо всём, что нужно знать, прежде чем начинать работу с хендбуком. Разберёмся, что такое алгоритмы, зачем они нужны и как оценивать их эффективность

  • Глава №2 — структуры данных. Познакомитесь со списками, множествами, словарями, стеками, очередями и деком.

  • В главе №3 — практические задачи. Попробуете применить полученные знания на практике: решите классические задачи с автоматической проверкой.

  • Глава №4 — разминка на простых алгоритмах. Здесь вас ждут задачи на последовательные вычисления, НОД, НОК и числа Фибоначчи.

  • Глава №5 — графы. Изучите представление графов, алгоритмы обхода, поиск кратчайших путей и компоненты связности.

  • В главе №6— техники проектирования алгоритмов. Вы узнаете, как работают перебор, жадные алгоритмы, динамическое программирование, рекурсия, подход «разделяй и властвуй» и рандомизация.

  • Глава №7 — жадные алгоритмы. Отработаете жадные подходы на задачах про деньги, рекламу, зарплаты и призы.

  • Глава №8 — динамическое программирование. Большая глава с разнообразными задачами: от размена и редактирования строк до рюкзака и скобочной последовательности.

  • Глава №9 — алгоритмы «разделяй и властвуй». Погрузитесь в двоичный поиск, быструю сортировку и задачи на деление массива.

Как это пригодится в реальной жизни

Знания об алгоритмах — это не просто формулы и схемы. Это возможность изменить способ мышления, чтобы эффективнее решать задачи в работе и жизни, — даже если вы не программист.

А если ваша работа связана с кодом, то алгоритмы помогут создать базу для любой сложной программы: от поисковиков до игр, от рекомендательных систем до мобильных приложений.

Понимание алгоритмов пригодится, если вы хотите:

  • писать код, который работает быстро даже на больших данных;
  • уверенно решать задачи на собеседованиях в IT-компании;
  • участвовать в хакатонах, олимпиадах и конкурсах по программированию;
  • проектировать архитектуру приложений и выбирать правильные структуры данных;
  • углубиться в машинное обучение и понимать, как «под капотом» устроены модели;
  • перейти от простого кодинга к инженерному подходу.

Этот хендбук — хорошая отправная точка не только для того, чтобы научиться решать алгоритмические задачи, но и для дальнейшего изучения смежных тем. После него будет проще продолжить обучение в хендбуках по машинному обучению, математике для анализа данных и языкам программирования.

Как устроен этот хендбук

Отмечайте параграфы как прочитанные — это поможет отслеживать прогресс. Для этого внизу страницы есть специальная кнопка «Параграф не прочитан».

algorithms1.1

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

algorithms1.2

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

algorithms1.3

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

algorithms1.4

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

Как работать с заданиями — читайте здесь.

А если что-то непонятно — можно в любой момент обратиться в сообщество студентов.

Чтобы добавить в заметки выделенный текст, нажмите Ctrl + E
Следующий параграф1.2. Как работать с системой проверки заданий
Следующий параграф1.3. Введение

Перед вами хендбук по алгоритмам от авторов, увлечённых красотой и элегантностью математики.