偏向算法具体实现的好书
在小百合算法版看到 ufx222 对这本书的评价才注意到这本书。引用他的评价:
“只推荐C语言的版本;而且不推荐看中文版,中文版翻译得非常之差。这是一本非常重视算法实现的书,即使是资深的优化程序的人也不会对Sedgewick的C程序有不满。作者对于基本算法都给了很多很多形象的图示。”
看这本书前言的时候注意到作者 Robert Sedgewick 是 Knuth 的学生。
当参考书看过书中的几段,如 quicksort, merge-sort, binary search tree, red-black tree。书中算法的实现的确很精巧。比如 merge 的实现,书中使用的方法在拷贝数组时,将其中一个数组反序拷贝,这样合并时就可以很方便的处理数组边界。介绍过 2-3-4 tree 以后再介绍了 red-black tree,通过将这两者联系起来使读者更容易理解 red-black tree 的思想。在 balanced search tree 一章末尾还有各种平衡搜索树在实际使用中性能的比较。我就是看到这个才明白 C++ STL 中的 map 等数据结构为什么使用 red-black tree 而不使用其他的平衡搜索树。
看过的只是书中的一小部分,但已经感受到本书对算法实现的重视,有不少漂亮的 trick。书中实现的代码可以从作者网站上下载。
“只推荐C语言的版本;而且不推荐看中文版,中文版翻译得非常之差。这是一本非常重视算法实现的书,即使是资深的优化程序的人也不会对Sedgewick的C程序有不满。作者对于基本算法都给了很多很多形象的图示。”
看这本书前言的时候注意到作者 Robert Sedgewick 是 Knuth 的学生。
当参考书看过书中的几段,如 quicksort, merge-sort, binary search tree, red-black tree。书中算法的实现的确很精巧。比如 merge 的实现,书中使用的方法在拷贝数组时,将其中一个数组反序拷贝,这样合并时就可以很方便的处理数组边界。介绍过 2-3-4 tree 以后再介绍了 red-black tree,通过将这两者联系起来使读者更容易理解 red-black tree 的思想。在 balanced search tree 一章末尾还有各种平衡搜索树在实际使用中性能的比较。我就是看到这个才明白 C++ STL 中的 map 等数据结构为什么使用 red-black tree 而不使用其他的平衡搜索树。
看过的只是书中的一小部分,但已经感受到本书对算法实现的重视,有不少漂亮的 trick。书中实现的代码可以从作者网站上下载。
有关键情节透露