Алгоритмы:
Т. Кормен: Алгоритмы. Построение и анализ.
Д. Кнут: Искусство программирования (3 тома, 4-ый на подходе).
Н. Вирт: Алгоритмы и структуры данных.
Проектирование:
«Банда четырех»: Приемы объектно-ориентированного проектирования. Паттерны проектирования. (На правах кэпа; так уж часто ссылаются на эту книгу, когда речь идет о проектировании).
так вот начиная с VI главы Кормена начинается то, чего в Кнуте по моему нет.
Причем рассмотрено оно достаточно хорошо. На самом деле и в остальных главах есть кое-что чего нет в Кнуте. Ну и упаси вас бог прочитать Кнута а потом Кормена — не тратьте время :) Вначале прочитайте Кормена, а потом по нужным вам моментам дочитайте Кнута. И да, Вирта наверное прочитайте первым, за пару дней :) А то Кормен может пойти тяжко :)
долго: Дональд Кнут, «Искусство программирования» быстрее: Роберт Седжвик, Алгоритмы (не знаю, что на русском издавалось) еще быстрее: копать code.google.com/edu/algorithms/index.html (англ.) Neo: I know kung fu: www.cs.princeton.edu/~rs/AlgsDS07/ (слайды Седжвика на англ.)
По алгоритмам — Вирт. Кнут — это конечно круто, но слишком много математики.
По проектированию — Agile Software Development автора Robert C. Martin. Есть попроще книга этого же автора — Clean Code, но она далеко не вся посвящена проектированию.
По вопросу в целом: Ещё (к вопросам проектирования/реализации использования готовых вылизанных алгоритмов) сходите на algolist.ru — там много хорошего попадалось в свое время :)
Всем большое спасибо.
Из перечисленных книг слышал о книгах Кнута и прочитал «Паттерны проектирования», но теперь пришло время прочитать/перечитать толковые книги ещё раз.