@
hetong_007建议先了解一些基础的东西,《算法导论》的第一章讲的就非常好。《数据结构与算法分析(Data Structures and Algorithm Analysis in C, Second Edition)》作为一部了解基本算法思想且较为通俗的书觉得还可以。《挑战编程——程序设计竞赛训练手册》这本书作为一本练习题的目录比较适合。
如果LZ是考虑学习算法而非准备竞赛的话题库推荐SPOJ。上面的可以提交的语言是我见过最多的题库。
另外不推荐为算法竞赛设计的书,一些实际很常见算法(如近似类的算法和文件压缩算法)短时限的算法竞赛都很少涉及。