Ответ 1
Не покупайте любую книгу
MIT OCW
.
Я знаю C и С++, и у меня есть некоторый опыт работы с Java, но я не слишком много знаю об алгоритмах и структурах данных.
Я сделал обыск на Amazon, но я не знаю, какую книгу выбрать. Я не хочу книгу, которая ставит ее основу только на теоретическую часть; Я тоже хочу практическую часть (вероятно, больше, чем теоретическую:)).
Я не хочу, чтобы код был реализован на определенном языке, но если он есть в Java, возможно, я был бы счастливее.:)
Не покупайте любую книгу
.
Введение в алгоритмы от Cormen et. и др. является стандартной вводной алгоритмической книгой и используется многими университетами, в том числе и моей. Он имеет довольно хороший охват и очень доступен.
И что-либо у Роберта Седжуика тоже хорошо.
Если вы хотите, чтобы алгоритмы были реализованы специально на Java, то есть книга Митчелла Уэйта "Структуры данных и алгоритмы в Java". Он начинается с базовых структур данных, таких как связанные списки, стеки и очереди, а также основные алгоритмы сортировки и поиска. Проработав через него, вы, в конечном итоге, попадете в структуры данных дерева, деревья Red-Black, 2-3 дерева и графики.
В целом это не чрезвычайно теоретическая книга, но если вы просто хотите ввести на язык, с которым вы знакомы, тогда это хорошая книга. В конце дня, если вы хотите более глубокое понимание алгоритмов, вам нужно будет изучить некоторые из более теоретических концепций и прочитать одну из классиков, таких как Cormen/Leiserson/Rivest/Stein Введение в алгоритмы.
Я думаю, что введение в алгоритмы - это справочники, и должно быть для любого серьезного программиста.
http://en.wikipedia.org/wiki/Introduction_to_Algorithms
Другая забавная книга - Руководство по разработке алгоритма http://www.algorist.com/. Он охватывает более сложные алгоритмы.
Я не могу не упомянуть Искусство компьютерного программирования Кнута http://www-cs-faculty.stanford.edu/~knuth/taocp.html
Если вам не нужна полная ссылка на большую часть используемых алгоритмов и структур данных, и вы просто хотите познакомиться с общими приемами, я бы рекомендовал нечто более легкое, чем Cormen, Sedgewick или Knuth. Я думаю, Алгоритмы и структуры данных Н. Вирта не так плохой выбор, даже несмотря на то, что он был опубликован далеко назад.
Численные рецепты