Eu aprendi sobre algoritmos em um curso universitário anos atrás. Mas se você quiser criar algoritmos usando um livro, precisará de um bom. Dois livros se destacam para mim como a maneira de entrar em algoritmos:
- O algoritmo Design Manual por Steven S. Skiena
- Introdução aos algoritmos de T Cormen, C Leiserson, R Rivest e C Stein
O primeiro talvez seja mais um manual prático, enquanto o último é mais parecido com a Bíblia, mas com provas.
A estratégia que você poderia seguir consistiria em ler, fazer os exercícios teóricos e, em seguida, implementar o máximo possível, concentrando-se em algoritmos / problemas que você achar interessante ou desafiador ou ambos. Portanto, tente abranger todos os aspectos dos algoritmos, não apenas implementá-los. Isso incluirá o estudo da complexidade do tempo e do espaço e a comprovação da correção. O estudo de algoritmos é mais do que apenas implementar algoritmos.
Depois de ganhar experiência suficiente, comece a se especializar. Se você se interessar por Geometria Computacional ou algoritmos não-bloqueadores, por exemplo, comece a explorar livros e trabalhos de pesquisa nesta área.
A especialização é boa, mas também é bom amostrar técnicas de outras áreas; portanto, ler amplamente sobre algoritmos (e implementar tais algoritmos) é uma boa maneira de manter um amplo conjunto de habilidades.
EDIT: Após analisar os algoritmos introdutórios, você pode consultar livros como Algoritmos Aleatórios de Motwani & Raghavan ou Algoritmos de Aproximação de Vazirani . Esses livros são uma pesquisa (e até certo ponto, um bom exercício de aprendizado em técnicas matemáticas) em técnicas mais avançadas de design de algoritmos. Eles também ampliam sua visão sobre muitos outros campos do CS, como Gráficos e Redes, Design de estrutura de dados e Otimização.