Je connais C et C++ et j'ai une certaine expérience avec Java, mais je ne connais pas trop les algorithmes et les structures de données.
J'ai fait une recherche sur Amazon, mais je ne sais pas quel livre choisir. Je ne veux pas d'un livre qui ne se base que sur la partie théorique; Je veux aussi la partie pratique (probablement plus que la partie théorique :)).
Je ne veux pas que le code soit implémenté dans un certain langage, mais s'il est en Java, je serais probablement plus heureux. :)
Introduction aux algorithmes par Cormen et. Al. est un livre d'algorithmes d'introduction standard, et est utilisé par de nombreuses universités, y compris la mienne. Il a une assez bonne couverture et est très accessible.
Et n'importe quoi par Robert Sedgewick est bon aussi.
Je pense que l'introduction aux algorithmes est le livre de référence et un incontournable pour tout programmeur sérieux.
http://en.wikipedia.org/wiki/Introduction_to_Algorithms
Un autre livre amusant est le manuel de conception d'algorithmes http://www.algorist.com/ . Il couvre des algorithmes plus sophistiqués.
Je ne peux pas ne pas mentionner l'art de la programmation informatique de Knuth http://www-cs-faculty.stanford.edu/~knuth/taocp.html
Si vous voulez que les algorithmes soient implémentés spécifiquement dans Java alors il y a le livre de Mitchell Waite Series "Data Structures & Algorithms in Java". Il commence à partir des structures de données de base comme les listes liées, les piles et les files d'attente, et les algorithmes de base pour le tri et la recherche. Au fur et à mesure de votre progression, vous arriverez à des structures de données d'arbre, des arbres rouge-noir, 2 à 3 arbres et des graphiques.
Dans l'ensemble ce n'est pas un livre extrêmement théorique, mais si vous voulez juste une introduction dans une langue que vous connaissez, c'est un bon livre. À la fin de la journée, si vous voulez une compréhension plus approfondie des algorithmes, vous devrez apprendre certains des concepts les plus théoriques et lire l'un des classiques, comme l'introduction aux algorithmes de Cormen/Leiserson/Rivest/Stein.
Si vous n'avez pas besoin d'une référence complète à la plupart des algorithmes et des structures de données qui sont utilisés et que vous souhaitez simplement vous familiariser avec les techniques courantes, je recommanderais quelque chose de plus léger que Cormen, Sedgewick ou Knuth. Je pense, Algorithmes et structures de données par N. Wirth n'est pas un mauvais choix même s'il a été imprimé il y a bien longtemps.
Recettes numériques