Не для манки-кодеров: безкоштовні книги з алгоритмів і структур даних


Дізнайтесь більше про нові кар'єрні можливості в EchoUA. Цікаві проекти, ринкова оплата, гарний колектив. Надсилайте резюме та приєднуйтеся до нас.

Щоб бути хорошим програмістом, мало знати синтаксис якої-небудь мови і добре писати код. Коли йдеться про маленькі шаблонні проекти, цього вистачить. Але ось ви стикаєтеся з чимось по-справжньому серйозним і масштабним, і стає ясно – без знання алгоритмів і уміння працювати із структурами даних ви далеко не підете.

Tproger вам допоможе – в цій статті ви знайдете підбірку книг, які допоможуть вам почати шлях справжнього програміста. До речі, для знайомства з темою рекомендуємо шанувати нашу серію статей про алгоритми і структури даних.

Algorithms, Etc.

Це лекції і інші учбові замітки до курсів по алгоритмах в Иллинойсском університеті в Урбане-Шампейне. Окрім теорії, на сайті можна знайти велику кількість домашніх і екзаменаційних завдань – правда, без відповідей.


Algorithms (Алгоритми на Java)

Книга Седжвика і Уейна “Алгоритми на Java” є класичним довідковим керівництвом, в якому міститься необхідний для програміста обсяг знань в області алгоритмів, накопичених за останні декілька десятиліть.

У книзі представлений широкий спектр даних тем: вичерпне тлумачення структур даних і алгоритмів сортування, пошуку, обробки графів і рядків, включаючи п’ятдесят алгоритмів, які повинен знати кожен програміст. Описуються нові реалізації алгоритмів на Java, написані в ясному модульному стилі, при якому увесь код доступний читачеві і повністю готовий до використання. У книзі вивчення алгоритмів на Java ведеться в контексті найважливіших наукових, інженерних і комерційних застосувань.


Binary Trees

Невелика методичка Стенфордского університету, цілком присвячена двійковим деревам. Увага приділена як теорії, так і задачкам з розборами рішень, причому і на Java, і на C.


Clever Algorithms: Nature – Inspired Programming Recipes

У цій книзі автор систематизує інформацію про найбільш популярні алгоритми, використовувані у сфері машинного навчання і штучного інтелекту. Вона чудово підійде студентам, викладачам і просто людям, що цікавляться розробкою ШІ, як детальний довідник.


The Algorithm Design Manual

Книга є одним з якнайповнішого керівництва по розробці ефективних алгоритмів. Перша частина книги містить практичні рекомендації по розробці алгоритмів: наводяться основні поняття, дається аналіз алгоритмів, розглядаються типи структур даних, основні алгоритми сортування, операції обходу графів і алгоритми для роботи із зваженими графами, приклади використання комбінаторного пошуку, евристичних методів і динамічного програмування. Друга частина книги містить великий список літератури і каталог з 75 найбільш поширених алгоритмічних завдань, для яких перераховані існуючі програмні реалізації.

Книгу можна використати в якості довідника по алгоритмах для програмістів, дослідників і в якості навчального посібника для студентів відповідних спеціальностей.


Planning Algorithms

У цій книзі зібрана величезна кількість алгоритмів планування. Вони так чи інакше використовуються в робототехнике, теорії управління, ШІ і комп’ютерній графіці. Теоретичний матеріал забезпечений великою кількістю ілюстрацій і прикладів.


Linked List Basics & Problems

Ще дві методички із Стенфорда. Перша містить теоретичні матеріали, присвячені зв’язним спискам, а друга – 18 завдань. Згодяться усім, хто вивчає C і хоче дізнатися про можливості застосування покажчиків.


Purely Functional Data Structures

Ця книга розповідає про особливості функціональних структур даних. У ній розібрані функціональні реалізації багатьох структур: списків, черг, куп і інших.


Matters Computational

У цій книзі розглядається величезна кількість різних низькорівневих алгоритмів. Для реалізації прикладів використовується C++. Рекомендуємо до прочитання усім, хто так чи інакше працює з обчисленнями.


Text Algorithms

Ця книга присвячена алгоритмам обробки тексту. У ній послідовно розбираються різні алгоритми порівняння рядків і структури даних. Книгу можна подумки розділити на дві частини, присвячені практичним і теоретичним алгоритмам відповідно, тому кожен знайде в ній щось цікаве.


The Design of Approximation Algorithms

Ця книга призначена для тих, хто вже знайомий з основами алгоритмів, способами доказу їх істинності і теорією вірогідності. Згодиться студентам, працюючим з наближеними (що апроксимують) обчисленнями.


Data Structures and Algorithms

Автори книги переслідували три мети: пояснити основні алгоритми як можна простіше і при цьому точніше, забезпечити їх діаграмами і написати зрозумілі лістинги на псевдокоді, які можна без особливих проблем перекласти на C++, C# і Java. Чи вдалося їм це – прочитайте і дізнаєтеся


Data Structures (Into Java)

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


Think Complexity

Прокачайте свої навички володіння Python, вивчивши структури даних і алгоритми з точки зору теорії складних систем. Ви познайомитеся з графами, методами аналізу алгоритмів, масштабованих мереж і клітинних автоматів, попутно працюючи із запропонованими студентами і читачами прикладами таких систем. До речі, чернетка другого видання цієї книги теж доступний для читання і скачування.


Open Data Structures

У цій книзі розглядаються структури даних для послідовностей (списків), черг, черг з пріоритетом, словників і графів. Представлена величезна кількість оптимізованих реалізацій, початкові коди яких доступні для скачування.


Elementary Algorithms

У цій книзі описані реалізації основних алгоритмів і структур даних. Для наочності приведені багато ілюстрацій і прикладів коду на Haskell, C/C++, Python і Scheme. При цьому розглядається не лише процедурний, але і функціональний підхід до рішення завдань.


Handbook of Graph Drawing and Visualization

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


Think Data Structures

Це відносно невелика книга, автор якої постарався ненудною мовою познайомити читачів із структурами даних і алгоритмами. У кінці кожної теми є вправи для самостійної перевірки (рішення доступні на GitHub). Читачам украй рекомендується знати Java.


Якщо ми пропустили хороші книги з цієї теми, ділитеся ними в коммментариях.

Київ, Харків, Одеса, Дніпро, Запоріжжя, Кривий Ріг, Вінниця, Херсон, Черкаси, Житомир, Хмельницький, Чернівці, Рівне, Івано-Франківськ, Кременчук, Тернопіль, Луцьк, Ужгород, Кам'янець-Подільський, Стрий - за статистикою саме з цих міст програмісти найбільше переїжджають працювати до Львова. А Ви розглядаєте relocate?


Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *