4 хорошие бесплатные книги про алгоритмы и структуры данных
Just code ITСегодня рекомендуем полезную литературу про инструменты, без знания которых фактически невозможно создавать программы: это структуры данных и алгоритмы. Каждая из книг приводит примеры кода на своем языке — выбирайте стек по вкусу!

Санджой Дасгупта, Христос Пападимитриу, Умеш Вазирани (Sanjoy Dasgupta, Christos Papadimitriou, Umesh Vazirani) — Алгоритмы.
Перевод на русский одного из лучших курсов по алгоритмам. В книге изложение строится от подходов к проектированию алгоритмов, а не от типовых структур данных и контейнеров. Поэтому в ней нет ничего про бинарные деревья поиска. Зато есть про квантовые компьютеры и алгоритм Шора. Алгоритмы излагаются в общем виде при помощи псевдокода.
Антти Лааксонен (Antti Laaksonen) — Competitive Programmer’s Handbook.
Книжка по алгоритмам и структурам данных с практической направленностью. Разобраны решения множества типовых задач, с которыми сталкиваются участники олимпиад по программированию. Примеры кода приводятся на C++.
Никлаус Вирт (Niklaus Wirth) — Algorithms and Data Structures.
Традиционная книжка Никлауса Вирта по алгоритмам и структурам данных. Простое изложение самых основ: поиск, сортировка, бинарные деревья поиска, хеш-массивы. Примеры кода приводятся на языке Oberon.
Александр Шень — Программирование. Теоремы и задачи.
Емкая книжка по алгоритмам с уклоном в олимпиадное программирование. Автор сжато изложил множество тем: индуктивные функции, комбинаторика, обход дерева, бектрекинг, сортировка, конечные автоматы, рекурсивные алгоритмы, алгоритмы на графах, стеки, очереди, множества, алгоритмы сопоставления с образом, анализ игр, оптимальное кодирование, хеширование, контекстно-свободные грамматики. Изложение ведется на подмножестве языка Pascal.