Laurence对以上类型的5本图书做出了自己的评价
计算机科学的权威Niklaus Wirth曾经认为,所谓程序就是算法加上数据结构。虽然这个结论过于武断,而且在现代软件工程科学领域中也逐渐失去其现实意义,但是数据结构和算法的选择仍然在任何程序的效率性上占据了重要的地位。早期Java语言所采用的字节码解释器和后期的HotSpot技术之间所存在的巨大性能差距就是明证。如果你需要大幅提高Java应用程序或者Java小程序的性能(怎么不可以?),JavaWorld的图书评论员Laurence
Vanhelsuwé 建议你不妨多读一些数据结构和算法科学方面的书籍。
Laurence Vanhelsuwé
能使用最新的Java API(比如Swing和InfoBus)当然很不赖,但你要是不能正确运用数据结构和算法(以下缩写为DS&A)来建立你的应用程序,最终的软件产品肯定不会满足最基本、最一般的系统需求:时间效率和空间效率。
虽然DS&A完全可以用具体的语言实现来进行讨论,但这些相关主题已经由大量学生正在学习的编程语言课所涉及了,比如20世纪70年代采用 Pascal语言,80年代时髦C语言,而90年代就要掌握C++语言了。如果真象谣传的那样最终Java再取代C++,那我们所要关注的所有重要书籍都要以Java为核心了。
在我写这篇文章的时候,以下列出的几本图书探讨了算法、数据结构和/或抽象数据类型(ADT)等内容:
下表概括了以上列出图书的基本情况,表中的顺序是按照书的价格排列的。
* 严格地讲,该书的光盘内容和书的内容根本就不相关!
在缺乏计算每本书的性价比工具的情况下,我给出版面密度参数作为一个大致的参考,行/页参数越低通常也就意味着可读性越低,反之可能就更好。
Big-Oh算法分析:指的是在对给定算法的运行性能进行数学分析时其相关说明的详细程度到底有多大。
算法动画小程序:指的是作者是否采用了图形显示的动画小程序来增加文章的阅读性和相关算法的直观性(对没有采用这个比较选项的作者来说,我怀疑他们是否阅读过JDK的SortDemo演示小程序)。
关注抽象概念和具体实现吗?一行突出了文本内容在抽象数据类型(ADT)和实现这些ADT的几乎无限多的具体途径之间是否划清了明显的接线。
讨论了JGL或者STL吗:则检验了另一个作者本可以用来吸引读者的机会:作者是否仔细分析了ObjectSpace的Java基本库JGL(Java
Generic Library),或者至少给出JGL或 JGL的C++鼻祖——标准模版库STL(Standard Template Library )的设计背景和体系内幕(我没有将最新的1.2
JDK Collections API包含在内,因为这种API还没有最终定型,不管怎么样,以上各书都没有提到它)。
要求数学知识程度:的含义简单说来就是,你在面对书中作者对算法所做的数学分析以及给定算法的相关理论证明时,这些“美味佳肴”是否正对你的胃口。
|