Топ-7 книг по алгоритмам на русском языке

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

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

Так что изучение алгоритмов для будущего разработчика это обязательный этап. Мы собрали для вас несколько самых лучших книг по алгоритмам, опубликованных на русском языке.

1. Грокаем алгоритмы

Автор: Адитья Бхаргава. Год издания: 2017.


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

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

Особо стоит отметить, что книга написана очень легким языком, а сложные темы в ней объясняются на простых жизненных примерах. Кроме того, все объяснения сопровождаются тематическими иллюстрациями и графиками (их около 400) — чтобы уж точно всем все стало понятно.

2. Совершенный алгоритм. Основы

Автор: Тим Рафгарден. Год издания: 2019.


Тим Рафгарден — профессор информатики, член института Data Science при Колумбийском университете. Серия книг «Совершенный алгоритм» (англ. Algorithms Illuminated) написана им на основе онлайн-курсов, которые он ведет на платформах Coursera и edX.

Первая часть серии представляет собой доступное введение в основы алгоритмов. Объяснение не привязано к каком-либо языку программирования. В этой книге автор рассматривает асимптотический анализ алгоритмов и нотацию О-большое (а также Омега-большое и Тета-большое), парадигму «разделяй и властвуй», рандомизированные алгоритмы и, конечно, несколько самых известных алгоритмов сортировки.

В этой книге читатели также найдут упражнения на закрепление материала и разборы решений.

3. Совершенный алгоритм. Графовые алгоритмы и структуры данных

Автор: Рафгарден Тим. Год издания: 2019.


Это вторая книга серии «Совершенный алгоритм». В ней рассматриваются такие темы как графы, алгоритм кратчайшего пути Дейкстры, куча и дерево поиска, хеш-таблицы и фильтры Блума. Как и первой части, здесь к объяснениям прилагаются задачи на закрепление материала (с решениями).

4. Алгоритмы для начинающих

Автор: Луридас Панос. Год издания: 2018.


Это учебное пособие предназначено для людей, не имеющих бэкграунда в продвинутых темах математики и информатики. Упор в книге делается на задачи и жизненные примеры. Разбираемые алгоритмы представлены в виде псевдокода и легко могут быть реализованы на любом языке программирования, включая Python.

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

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

5. Введение в анализ алгоритмов

Автор: Майкл Солтис. Год издания: 2019.


Это второе, полностью обновленное и переработанное издание книги.

«Введение в анализ алгоритмов» будет отличным учебным руководством и справочником как студентов, так и для разработчиков, ориентированных на создание надежного кода. Материал в книге изложен достаточно сжато, но, тем не менее, он охватывает все необходимые основы.

В книге рассмотрены традиционные для информатики алгоритмы, такие как жадный алгоритм, динамическое программирование, «разделяй и властвуй». Но кроме того автор рассматривает два класса алгоритмов, которые часто выпадают из поля зрения, — рандомизированные и онлайн-алгоритмы (с упором на сами алгоритмы). И это очень кстати, ведь первые повсеместно применяются в криптографии, а вторые необходимы в очень многих областях, от создания ОС до прогнозирования фондового рынка.

6. Алгоритмы: разработка и применение

Авторы: Джон Клейнберг, Эва Тардос. Год издания: 2016.


Авторы этой книги — профессора теории вычислительных систем в Корнелльском университете. Клейнберг специализируется на алгоритмах, связанных со структурой сетей и информации. Его работы лежат в основе поисковых систем интернета. Тардос специализируется на графах и сетевых задачах.

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

В книге рассматриваются (среди прочих) такие темы как основы анализа алгоритмов, графы, жадные алгоритмы, алгоритмы «разделяй и властвуй», динамическое программирование, NP-полнота, аппроксимирующие и рандомизированные алгоритмы.

7. Алгоритмы. Руководство по разработке

Автор: Стивен С. Скиена. Год издания: 2011.


Книга, ставшая классикой. Первое издание вышло еще в 1997 году. Мы представляем вам второе издание, которое было существенно обновлено.

В первой части книги читателю будут предложены для изучения такие темы как анализ алгоритмов, структуры данных, сортировка и поиск, обход графов, комбинаторный поиск, динамическое программирование. Вторая часть представляет собой каталог алгоритмических задач, часто возникающих в реальной жизни. Также в этой книге вы найдете ссылки на рабочие реализации упоминаемых алгоритмов.