作为一个计算机专业的学生,除了教材,这些书籍你读过多少?( 六 )

这本书深入浅出 , 全面地介绍了计算机算法 。 对每一个算法的分析既易于理解又十分有趣 , 并保持了数学严谨性 。 本书的设计目标全面 , 适用于多种用途 。

涵盖的内容有:算法在计算中的作用 , 概率分析和随机算法的介绍 。 书中专门讨论了线性规划 , 介绍了动态规划的两个应用 , 随机化和线性规划技术的近似算法等 , 还有有关递归求解、快速排序中用到的划分方法与期望线性时间顺序统计算法 , 以及对贪心算法元素的讨论 。 此书还介绍了对强连通子图算法正确性的证明 , 对哈密顿回路和子集求和问题的NP完全性的证明等内容 。

第六名:478票 《重构:改善既有代码的设计》

Martin Fowler写的《重构Refactoring》主要关于改进现有代码的设计 。 这是一个改变软件系统而不改变代码的外部行为 , 却能提高它内部结构的过程 。

《重构:改善既有代码的设计》(中文版)的核心是一份完整的重构名录(catalog of refactoring) , 其中每一项都介绍一种经过实证的代码变换手法(code transformation)的动机和技术 。 某些项目如Extract Method和Move Field看起来可能很浅显 , 但不要小看它们 , 因为理解这类技术正是能否顺利进行重构的关键 。

推荐阅读