我知道C和C ++,我有一些Java经验,但我对算法和数据结构知之甚少。
我在亚马逊上搜索过,但我不知道应该选择哪本书。我不想要一本仅以理论部分为基础的书;我也想要实用的部分(可能比理论部分更多:))。
我不希望代码以某种语言实现,但如果是Java语言,我可能会更高兴。 :)
答案 0 :(得分:29)
答案 1 :(得分:18)
Introduction to Algorithms。人。是一本标准的入门算法书,被许多大学使用,包括我自己的。它有很好的覆盖率,非常平易近人。
答案 2 :(得分:5)
如果您希望算法专门用Java实现,那么就有Mitchell Waite的系列丛书“Java中的数据结构和算法”。它从链接列表,堆栈和队列等基本数据结构开始,以及用于排序和搜索的基本算法。通过它,您最终将获得树数据结构,红黑树,2-3树和图。
总而言之,它不是一本非常理论化的书,但如果你只想用你熟悉的语言进行介绍,那么它就是一本好书。在一天结束时,如果你想要更深入地理解算法,你将需要学习一些更理论的概念,并阅读其中一本经典着作,如Cormen / Leiserson / Rivest / Stein的算法导论。 / p>
答案 3 :(得分:5)
我认为算法的介绍是参考书,对于任何认真的程序员来说都是必须的。
http://en.wikipedia.org/wiki/Introduction_to_Algorithms
其他有趣的书是算法设计手册http://www.algorist.com/。它涵盖了更复杂的算法。
我不能不提到Knuth的计算机编程艺术 http://www-cs-faculty.stanford.edu/~knuth/taocp.html
答案 4 :(得分:3)
如果您不需要完全参考正在使用的大部分算法和数据结构,并且只是想熟悉常用技术,我会推荐比Cormen,Sedgewick或Knuth更轻量级的东西。我认为,N。Wirth的Algorithms and Data Structures并不是一个糟糕的选择,即使它很久以前就被打印过了。
答案 5 :(得分:1)
数字食谱