Для программиста очень важны алгоритмы. Без них время работы увеличивается, а строчки кода стремительно растут. Уверенное знание алгоритмов необходимо для прохождения собеседования в большинстве топовых технологических компаний. Для программиста мало знать один лишь синтаксис языка для большого и серьезного проекта. Поэтому программист обязан знать алгоритмы!
Есть огромное количество хороших и плохих учебников, и различать их будет довольно непростой задачей. Поэтому я привел список отличных книг по алгоритмам, которые поймут даже школьники.
1. Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих | Бхаргава Адитья.
Прекрасная и очень интересная книга по алгоритмам. Автор простым языком объясняет сложные алгоритмы с иллюстрациями, как они работают и где их применяют. К каждому алгоритму есть код с комментариями. Как говорит описание книги -
Алгоритмы — это всего лишь пошаговые алгоритмы решения задач, и большинство таких задач уже были кем-то решены, протестированы и проверены. Можно, конечно, погрузиться в глубокую философию гениального Кнута, изучить многостраничные фолианты с доказательствами и обоснованиями, но хотите ли вы тратить на это свое время?
После этой книги, вы точно поймете алгоритм Дейкстры, коллизии, бинарный поиск и многое другое
2. Алгоритмы. Построение и анализ | Штайн Клиффорд, Кормен Томас Х.
Книга "Алгоритмы. Построение и анализ" удачно объединяет в себе полноту охвата и строгость изложения материала. В книге описаны самые разнообразные алгоритмы, сочетается широкий диапазон тем с глубиной и полнотой изложения; при этом изложение доступно для читателей самого разного уровня подготовки.
Фундаментальный труд "Алгоритмы. Построение и анализ" известных специалистов в области информатики достоин занять место на полке любого человека, чья деятельность так или иначе связана с вычислительной техникой и алгоритмами:
- для профессионала эта книга может служить настольным справочником,
- для преподавателя - пособием для подготовки к лекциям и источником интересных нетривиальных задач,
- для студентов и аспирантов - отличным учебником.
3. Алгоритмические трюки для программистов | Уоррен мл. Генри С.
Автор Генри Уоррен описал в своей книге множество приемов, которым он научился за несколько десятков лет, работая в области разработки компиляторов и архитектуры компьютеров, прикладного и системного программирования. Здесь вы найдете множество приемов для работы с отдельными битами, байтами, вычисления различных целочисленных функций; большей части материала сопутствует строгое математическое обоснование.
Во втором издании был добавлен материал о CRC, кодах с коррекцией ошибок (ECC), различных методах деления на константы (например, с помощью сдвигов байтов) и о многом другом.
4. Алгоритмы. Справочник с примерами на C, C++, Java и Python | Хайнеман Джордж, Поллис Гари
В этой книге вы не найдете много теории. Весь материал книги акцентирован на практическом применении различных алгоритмов. Книга проиллюстрирована примерами на C, C++, Python и Java. Каждый алгоритм разобран, указана его сложность и различные условия, при которых он достигает максимальной эффективности. Кроме того, в книге вы найдете рекомендации по использованию различных структур данных в тех или иных алгоритмах. Поэтому книга прекрасно подойдет в качестве справочника, который будет лежать у вас на полке и использоваться во время реализации ваших проектов.
5. Жемчужины проектирования алгоритмов. Функциональный подход | Берд Ричард
Отличная книга по алгоритмам, использующая неординарный подход.
Книга разделена на 30 глав, каждая из которых называется жемчужиной. В начале главы читателю дается задача, например, на сжатие данных либо связанная с игрой. Задача формулируется с помощью языка Haskell. Затем с помощью методов функционального программирования «скелет» программы начинает обрастать различными готовыми функциями. Таким образом читатель сможет лучше вникнуть в суть того или иного алгоритма.