​​Хороший программист не тот, кто знает синтаксис, множество библиотек и функций, пишет чистый код. А тот — кто щёлкает алгоритмы, как орешки. Алгоритмизация делает сложные проекты — простыми, а код — надёжным и эффективным. 



Собрали восемь книг, которые помогут понять или вспомнить основы алгоритмов.



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



Это краткое, но математически строгое введение в анализ различных алгоритмов с точки зрения доказывания их правильности. В книге описаны основные свойства линейных, ветвящихся и циклических алгоритмов и способы их проверки. Много теоретических задач и практических примеров на Python. Подойдёт новичкам.



2. Алгоритмы. Вводный курс. Автор: Томас Кормен. Год издания: 2020



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



3. Грокаем алгоритмы. Автор: Адитья Бхаргава. Год издания: 2022



Девиз книги: «Алгоритмы — это просто!» Они — всего лишь пошаговые инструкции решения задач, и большинство из них уже кем-то решено, протестировано и проверено. Можно изучить многостраничные фолианты с доказательствами и обоснованиями, а можно открыть иллюстрированную книгу и понять, что алгоритмизация — это несложно. А грокать алгоритмы (досконально разбираться в них) — это весёлое и увлекательное занятие. Подойдёт новичкам.



4. Алгоритмы. Построение и анализ. Авторы: Штайн Клиффорд, Ривест Рональд Л. Год издания: 2019



В книге предлагается очень широкий спектр тем по алгоритмизации, в том числе есть глава и про многопоточные алгоритмы. Текст сопровождается большим количеством иллюстраций. Описание алгоритмов дополняется псевдокодом, который легко перепишется под любой язык программирования. Подойдёт новичкам.



5. Алгоритмы. Руководство по разработке. Автор: Стивен С. Скиена. Год издания: 2017 г. 



Одно из наиболее полных руководств по разработке эффективных алгоритмов. Много практических рекомендаций — от основных понятий и анализа алгоритмов до взвешенных графов, комбинаторного поиска, эвристических методов и динамического программирования. Также есть каталог из 75 наиболее распространённых алгоритмических задач, для которых перечислены существующие программные реализации. Пригодится!



6. Алгоритмические трюки для программистов. Автор: Генри С. Уоррен мл. Год издания: 2014 г.



Одна из самых популярных книг про алгоритмы. Генри Уоррен делится с читателями разнообразными приёмами алгоритмизации из своей коллекции, пополняемой в течение десятилетий работы в области прикладного и системного программирования. Большинство из алгоритмов носят практический характер. Будет полезна даже бывалому программисту, но понятна даже начинающему.



7. Алгоритмы. Справочник с примерами на C, C++, Java и Python. Авторы: Джордж Хайнеман, Гари Поллис, Стэнли Селков. Год издания: 2017



В книге описываются существующие алгоритмы для решения различных задач с достаточным математическим обоснованием для понимания и анализа производительности. Книга акцентирована на приложениях, а не на теории. Тут много реалистичных задач на четырёх языках программирования. А ещё много полезного — реализации диаграмм Вороного и пространственные древовидные структуры, такие как R-деревья и Quadtrees. Книга для опытных специалистов.



8. Алгоритмы на Java. Авторы: Джитер Кевин Уэйн, Седжвик Роберт. Год издания: 2019



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



Что уже прочитал? А что готов посоветовать по теме коллегам? Делись в комментариях в ВК!