Подборка книг по алгоритмам
Сохраните на стену, чтобы не потерять
1. Томас Х. Кормен "Алгоритмы. Вводный курс" (2014, DjVu)
Книга предназначена для всех, кого интересуют вопросы, связанные с компьютерными алгоритмами, но базовое образование, да и просто отсутствие времени не позволяют взяться за серьезный труд.
Эту книгу отличают точность, широкий спектр охватываемых вопросов.
После ее прочтения вы будете знать следующее:
• Что такое компьютерные алгоритмы, как их описать и оценить.
• Как решаются базовые задачи, которые можно смоделировать в компьютере с помощью математической структуры, известной как “граф”.
• Основные принципы, лежащие в основе криптографии. Даже если вы никогда шифровали сообщений сами, ваш компьютер, вероятно, не раз это делал, например при покупке товаров через Интернет.
• Фундаментальные идеи сжатия данных, выходящие далеко за рамки сокращений, например, в столь любимых недалекой молодежью смсках.
2. Роберт Седжвик, Кевин Уэйн "Алгоритмы на Java", 4-е издание (djvu, 2013)
Книга Седжвика и Уэйна «Алгоритмы на Java» является классическим справочным руководством в котором содержится необходимый объем знаний для программиста в области алгоритмов, накопленных за последние несколько десятилетий
В книге «Алгоритмы на Java» представлен широкий спектр рассматриваемых тем: исчерпывающее толкование структур данных и алгоритмов сортировки, поиска, обработки графов и строк, включая пятьдесят алгоритмов, которые должен знать каждый программист. Описываются новые реализации алгоритмов на Java, написанные в ясном модульном стиле, при котором весь код доступен читателю и полностью готов к использованию. В книге изучение алгоритмов на Java ведется в контексте важнейших научных, инженерных и коммерческих приложений. Клиенты и алгоритмы выражены с помощью реального кода, а не псевдокода, как во многих других книгах.
Книга «Алгоритмы на Java» отличается от множества других ясным и кратким текстом, детальными примерами с иллюстрациями, тщательно подобранным кодом, историческим и научным контекстом, а также упражнениями для самостоятельной проработки на всех уровнях. В книге представлены точные соображения относительно производительности, поддерживаемые соответствующими математическими моделями и эмпирическими исследованиями, которые подтверждают достоверность этих моделей.
3.Роберт Лафоре "Структуры данных и алгоритмы в Java", 2-е издание, (2013, PDF)
Эта книга написана так, чтобы её было легко читать и понимать, несмотря на то, что тема может оказаться трудной для читателя. Программное обеспечение использует алгоритмы для управления структурами данных. Помимо простых и ясных примеров, автор приводит небольшую демонстрационную программу, которую можно запустить в веб-браузере. Эта программа отражает графическое представление структур данных и принцип их работы. Примеры в учебнике приводятся на языке Java, но для понимания достаточно освоить любой другой язык программирования (например, С++). В первой части книги дается введение в теорию алгоритмов и структур данных, а также описываются основы объектно-ориентированного программирования. Далее следует изложение различных алгоритмов и структур данных от простого к сложному: сортировка, абстрактные типы данных, связанные списки, рекурсия, древовидные структуры данных, хеширование, пирамиды, графы. Прочитав эту книгу, вы поймете, когда и в какой ситуации следует использовать тот или иной алгоритм или структуру данных.
4. Дасгупта С., Пападимитриу Х., Вазирани У. "Алгоритмы" (2014, PDF)
В этой книге, предназначенной для студентов математических и программистских специальностей (начиная с младших курсов), подробно разбираются основные методы построения и анализа эффективных алгоритмов. Она основана на лекциях авторов в университетах Сан-Диего и Беркли. Выбор материала не вполне стандартный (скажем, о сортировке и структурах данных, связанных с хранением упорядоченных множеств в сбалансированных деревьях, не говорится, зато обсуждаются линейное программирование и даже квантовые вычисления). Авторы старались выделить основные идеи и излагать доказательства наглядно, не злоупотребляя формализмом, но и не жертвуя математической строгостью; оригинальный подход авторов делает книгу интересной не только студентам, но и опытным преподавателям. Каждый раздел снабжён упражнениями.
5. Т.Кормен, Ч.Лейзерсон, Р.Ривест, К.Штайн - Алгоритмы. Построение и анализ. Издание 3-е (2013, DjVu)
Книга "Алгоритмы. Построение и анализ" удачно объединяет в себе полноту охвата и строгость изложения материала. Много книг, посвященных алгоритмам, отличается строгостью изложения материала, но страдает определенной неполнотой; другие книги охватывают огромный объем материала, но недостаточно строго излагают его. В книге "Алгоритмы. Построение и анализ" описаны самые разнообразные алгоритмы, сочетается широкий диапазон тем с глубиной и полнотой изложения; при этом изложение доступно для читателей самого разного уровня подготовки. Каждая глава книги относительно самодостаточна и может использоваться в качестве отдельной темы для изучения. Алгоритмы в книге "Алгоритмы. Построение и анализ" описаны простым человеческим языком и с применением псевдокода, который понятен любому, кто хоть в небольшой степени знаком с программированием, а пояснения принципов их работы даны без излишней математической строгости и требуют лишь элементарных знаний.
6. Генри С. Уоррен "Алгоритмические трюки для программистов" (2004, PDF)
В этой электронной книге слову `хакер` возвращено его первозданное значение - человека увлеченного, талантливого программиста. Здесь вы найдете множество приемов для работы с отдельными битами, байтами, вычисления различных целочисленных функций; большей части материала сопутствует строгое математическое обоснование. Каким бы не был ваш профессионализм - вы обязательно найдете в этой книге новое для себя. Не в меньшей степени эта книга пригодится и начинающему программисту, который может просто воспользоваться готовыми советами из книги, применяя их в своей повседневной практике.